QQ登录

只需要一步,快速开始

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

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

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

1

主题

3

听众

5

积分

升级  0%

该用户从未签到

跳转到指定楼层
1#
发表于 2009-9-10 22:40 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
法则4:Liskov替换法则(LSP)    - r$ Z8 V/ g2 y: a+ ]% T" K

2 ]) u$ i/ R/ v$ I/ A- u
3 ?# G, r$ ^! z+ l使用指向基类(超类)的引用的函数,必须能够在不知道具体派生类(子类)对象类型的情况下使用它们。   9 m9 ?* v* {; w( K5 D+ R+ m9 u/ S

* N; Q; Z) k2 X% n( X
4 ]! V  N$ I6 W [ Function Thar Use Referennces To Base(Super) Classes Must Be Able To Use Objects   Of Derived(Sub) Classes Without Knowing It ]                   
1 w/ w6 Z" ~. _9 F: u/ S% `: D; D# t9 v" R( E$ t$ f' r
% S4 D! {4 z0 V
Liskov替换法则  
( V; A: M! ^5 I- a) }$ ~2 T  }: J; s9 }2 j3 ]
" H" T) Q0 ~( \6 k6 s& {
1.显而易见,Liskov替换法则(LSP)是根据我所熟知的"多态"而得出的。    3 _* u4 W# h0 j' Y' \4 A: X5 Z
& U0 x3 _6 O& q0 [; K1 ~

2 W6 U1 X; ^) \9 w9 \) N3 w2.例如:        ' `4 f( s/ [4 H. i

1 e$ _" n8 v' r4 [! T/ N0 @! C" z3 H- Q
方法drawShape应该可与Sharp超类的任何子类一起工作(或者,若Sharp为Java接口,则该方法可与任何实现了Sharp接口的类一起工作)   ! D  \* ~5 ?5 K+ C
8 S! H6 c; ?% o1 {+ Q) L7 I5 x

+ A+ e* H6 @1 Y  Q2 \( Z 但是当我们在实现子类时必须要谨慎对待,以确保我们不会无意中违背了LSP。 
1 W8 T  G$ c. p5 f" u3 i% s( l6 A/ h5 ^0 e

$ L6 ~$ v( Y, r& [8 N+ D; |" }& f ! o9 g: C3 S. s+ w& d- p

0 f2 t1 W. V' W* U% E, h9 @7 @
( x) `% Q* @5 ^, y/ T 3.若一个函数未能满足LSP,那么可能是因为它显式地引用了超类的一些或所有子类。
; {& ?8 i$ S4 C" }8 F3 {3 U6 q( I/ n) ]; a

9 p: l  q, K$ v) ]' z/ R这样的函数也违背了OCP,因为当我们创建一个新的子类时,会不得不进行代码的修改。
4 G% l% X9 R% f9 H$ o' O: R  W
4 W* y: C( x0 e: U3 e
6 n" R: Y0 c3 [0 x4 Y! M>>更多一些面向对象得设计法则(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, 2025-8-4 15:47 , Processed in 0.538000 second(s), 62 queries .

    回顶部