QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4234|回复: 2
打印 上一主题 下一主题

一些面向对象得设计法则(4)

[复制链接]
字体大小: 正常 放大

1

主题

3

听众

5

积分

升级  0%

该用户从未签到

跳转到指定楼层
1#
发表于 2009-9-10 22:40 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
法则4:Liskov替换法则(LSP)    5 F, \/ i& ~# z7 E# D0 ^+ T( R
  t8 ]: f- X0 Z0 c+ [$ A2 |6 Z

; L9 E: d% j+ B; A) n使用指向基类(超类)的引用的函数,必须能够在不知道具体派生类(子类)对象类型的情况下使用它们。   
6 U& o+ M6 Y* {1 k- P+ u
  y" ]* g; A! Y& J0 n- O" k8 l
: J7 q4 d! u- y; a3 {' r( x [ Function Thar Use Referennces To Base(Super) Classes Must Be Able To Use Objects   Of Derived(Sub) Classes Without Knowing It ]                   
- B/ c( a( R* O* O, D7 s- l& B& }9 Z/ f+ T& P5 z; n9 Z) T

& |( p* D4 T' B# r+ u9 dLiskov替换法则  
  ?, U- H: ~. G: X
. p) ?0 C( R% y2 p
7 c& T+ e* v+ i4 L: g5 I/ m1.显而易见,Liskov替换法则(LSP)是根据我所熟知的"多态"而得出的。    
+ p$ ?4 I: u' Q
; P* w( f  z; r: ~8 O
7 G( M' W6 f' A% `) ?1 R2.例如:        
6 ?0 e- O: z) _( F( y( K: I  l' G) ?6 g# _) _

6 z. F% [+ j! B: S5 D方法drawShape应该可与Sharp超类的任何子类一起工作(或者,若Sharp为Java接口,则该方法可与任何实现了Sharp接口的类一起工作)   4 H9 O6 m; L$ Q. D$ v

% r% h1 S5 o' K! l0 h* p
$ M$ }! Z( v2 K: W+ L* i 但是当我们在实现子类时必须要谨慎对待,以确保我们不会无意中违背了LSP。 
8 v6 R0 r+ ?" u1 a' G+ h2 e; s6 H4 ~
4 I7 K; K. s/ z2 W) }% N
5 n3 i. j7 R, l& m$ n5 s

- P8 o: l1 t# g  I) j) y
7 P; T- D8 D2 d" ` 3.若一个函数未能满足LSP,那么可能是因为它显式地引用了超类的一些或所有子类。
; W+ J/ [, Z5 b9 T" u
  _3 _7 C. S1 b+ M+ x7 M
; D2 s9 G5 U  Q( M! k这样的函数也违背了OCP,因为当我们创建一个新的子类时,会不得不进行代码的修改。
6 g. Z! ]. `0 O; T) P
" Y0 B; u( z1 w
* _7 O* L" j- z3 N. g  o- k" {>>更多一些面向对象得设计法则(4)
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
pxwgih        

0

主题

4

听众

151

积分

升级  25.5%

  • TA的每日心情
    开心
    2012-1-16 11:09
  • 签到天数: 1 天

    [LV.1]初来乍到

    回复

    使用道具 举报

    0

    主题

    4

    听众

    5

    积分

    升级  0%

    该用户从未签到

    自我介绍
    Statistician & Applied Mathematician
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-8-25 23:34 , Processed in 0.392170 second(s), 67 queries .

    回顶部