里氏代换原则(Liskov Substitution Principle)
来源:互联网 发布:每日股市分析 知乎 编辑:程序博客网 时间:2024/05/16 10:19
作用
它指导我们如何正确地进行继承与派生,并合理地重用代码!
定义
子类型必须能够替换掉它们的父类型、并出现在父类能够出现的任何地方。
这个就是尽量用多态的方法编程,也就是GRASP模式中的多态。
如果对于每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。
换言之,一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。
反过来代换不成立。
里氏替换原则要点:
1) 对于LSP的违反也潜在的违反了OCP
2) 正方形从长方形继承的例子微妙的违反了这种原则
3) 在考虑一个特定的设计是否恰当时,不能孤立地来看这个解决方案,必须根据设计的使用者所做出的合理假设来审视它
4) 对象的行为方式是软件真正所关注的问题,IS A 关系是就行为而言的
5) 派生类只能使用相等或更弱的前置条件来替换原始的前置条件,只能使用相等或更强的前置条件来替换原始的后置条件。
6) 完成的功能少于基类的派生类通常不能替换基类,也不符合LSP
7) 派生类不应该抛出基类不能预计的异常,否则违反LSP
里氏代换原则分析
里氏代换原则可以通俗表述为:在软件中如果能够使用基类对象,那么一定能够使用其子类对象。把基类都替换成它的子类,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类的话,那么它不一定能够使用基类。
里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。 0 0
- 里氏代换原则(Liskov Substitution Principle)
- 里氏代换原则(Liskov Substitution Principle)
- 里氏代换原则(The Liskov Substitution Principle)
- 里氏代换原则(Liskov Substitution Principle LSP)
- 里氏代换原则 (Liskov Substitution Principle, LSP)
- LSP The The Liskov Substitution Principle(里氏代换原则)
- 里氏替换原则(Liskov Substitution Principle)
- 设计模式六大原则——里氏代换原则(LSP,Liskov Substitution Principle)
- 设计原则-里氏替换原则(Liskov Substitution Principle LSP)
- 软件设计原则(三)里氏替换原则 -Liskov Substitution Principle
- 里氏替换原则(Liskov Substitution Principle, LSP)
- 里氏替换原则(Liskov Substitution Principle LSP)
- 里氏替换原则(Liskov Substitution Principle,LSP)
- 里氏替换原则(Liskov's Substitution Principle)
- 里氏替换原则(Liskov Substitution Principle LSP)
- 里氏替换原则(Liskov Substitution Principle, LSP)
- Liskov Substitution Principle 里氏替换原则
- 【六大设计原则】2. 里氏替换原则 -Liskov Substitution Principle
- 单一职责原则(Single Responsibility Principle)
- 主元分析(PCA)理论分析及应用
- OC语言自学《十二》---- OC(Foundation框架部分知识总结)
- 接口隔离原则(Interface Segregation Principle)
- mac os 下使用pomelo
- 里氏代换原则(Liskov Substitution Principle)
- CABasicAnimation 热门动画效果
- 依赖倒转原则(Dependency Inversion Principle)
- COCOS2D-X 网络篇---强联网(采用技术 BSD SOCKET+多线程技术 +protobuf)客户端实战篇
- nfs连接时的一个错误
- habit
- 组合/聚合复用原则(Composition/Aggregation Principle)
- openldap使用
- 迪米特法则(Law of Demeter)