加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OOD的设计原则

发布时间:2020-12-13 22:13:35 所属栏目:百科 来源:网络整理
导读:设计模式-OOD的设计原则(1)-"开-闭原则" 设计模式-OOD的设计原则(2)-"里氏代换原则" 设计模式-OOD的设计原则(3)-"依赖倒转原则" 设计模式-OOD的设计原则(4)-"接口隔离原则" 设计模式-OOD的设计原则(5)-"合成聚合复用原则" Liskov替换原则(LSP)-Barbara Lis
设计模式-OOD的设计原则(1)-"开-闭原则"

设计模式-OOD的设计原则(2)-"里氏代换原则"

设计模式-OOD的设计原则(3)-"依赖倒转原则"

设计模式-OOD的设计原则(4)-"接口隔离原则"



设计模式-OOD的设计原则(5)-"合成聚合复用原则"




Liskov替换原则(LSP)-Barbara Liskov??

:若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型


通俗一点的解释:子类型能够完全替换父类型,而不会让调用父类型的客户程序从行为上有任何改变。


一个经典的违反Liskov替换原则的例子是正方形与矩形之间的关系。这样的例子在谈对象设计的原则时,已经啰嗦得够多,这里我就不再赘述了 。这个例子带来的教训就是,现实世界中继承的例子,不能够完全直接套用在程序世界中。不过,作为设计的参照物,现实世界的很多规律与法则,我们仍然不可忽 视。例如鲸鱼和鱼,应该属于什么关系?从生物学的角度看,鲸鱼应该属于哺乳动物,而不是鱼类。没错,在程序世界中我们可以得出同样的结论。如果让鲸鱼类去 继承鱼类,就完全违背了Liskov替换原则。因为鱼作为父类,很多特性是鲸鱼所不具备的,例如通过腮呼吸,以及卵生繁殖。那么,二者是否具有共性呢? 有,那就是它们都可以在水中"游泳",从程序设计的角度来说,它们都共同实现了一个支持"游泳"行为的接口。

??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读