面向对象:Liskov替换法则(LSP)
2009-09-15 21:29
309 查看
Liskov替换 法 则 (LSP): 使用指向基 类 (超 类 )的引用的函数,必 须 能 够 在不知道具体派生 类 (子 类 ) 对 象 类 型的情况下使用它 们 。 |
■ Liskov替换法则(LSP)是根据我所熟知的“多态”而得出的。 |
例如: |
public void drawShape() { |
// do something |
} |
① 方法drawShape应该可与Sharp超类的任何子类一起工作(或者,若Sharp为Java接口,则该方法可与任何实现了Sharp接口的类一起工作) |
② 但是当我们在实现子类时必须要谨慎对待,以确保我们不会无意中违背了LSP。 |
③ 若一个函数未能满足LSP,那么可能是因为它显式地引用了超类的一些或所有子类。这样的函数也违背了OCP,因为当我们创建一个新的子类时,会不得不进行代码的修改。 |
总结 : |
■ Liskov替换法则(LSP)清楚地表明了ISA关系全部都是与行为有关的。 |
■ 为了保持LSP(并与开放-封闭法则一起),所有子类必须符合使用基类的client所期望的行为。 |
■ 一个子类型不得具有比基类型(base type)更多的限制,可能这对于基类型来说是合法的,但是可能会因为违背子类型的其中一个额外限制,从而违背了LSP。 |
■ LSP保证一个子类总是能够被用在其基类可以出现的地方。 |
泛化关系: 一般与特殊的关系(ISA关系)。反映一个类 与若干个互不相容的子类之间的分 层 关系。高 层类 (基 类 或超 类 ) 说 明一般的属性(公共属性),底 层类 (派生 类 或子 类 ) 说 明特殊属性。 (以上部分内容来自网络文档) |
相关文章推荐
- 面向对象设计原则:LisKov替换原则(LSP)
- 面向对象设计原则:LisKov替换原则(LSP)
- 面向对象设计原则一:LisKov替换原则(LSP)
- 面向对象设计原则-liskov替换原则
- 面向对象的设计法则(4)——Liskov替换法则(LSP)
- PHP面向对象程序设计的61条黄金法则
- 【设计模式攻略】OO设计原则之LSP-Liskov替换原则
- 面向对象设计原则三:里氏替换原则(LSP)
- Liskov替换原则(LSP)
- PHP面向对象程序设计的61条黄金法则
- OOD三个设计原则:SRP(单一职责原则)、OCP(开闭原则)、LSP(Liskov替换原则)
- 面向对象设计模式的核心法则
- 面向对象设计模式的核心法则
- Liskov替换原则--LSP
- Liskov替换原则(LSP)LSPLiskov Substitution Principle(里氏替换原则) --- 设计模式原则
- 面向对象的设计法则 2
- PHP面向对象法则
- Liskov替换原则--LSP
- 软件设计----LisKov替换原则(LSP)