32.确保你的public继承了模is-a关系public继承意味着is-a关系(里氏替换原则),一切适用于基类也适用于派生类。 矩形继承正方形问题:可实施与矩形的操作无法实施与正方形在编程领域。正方形是一种矩形是错误的在现实领域,正方形是一种矩形是正确的33.避免遮盖继承而来的名称...
分类:
编程语言 时间:
2015-07-22 20:45:56
阅读次数:
124
里氏替换原则:LSP
定义:
如果对于每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都换为o2时,程序的行为没有发生变化,那么S是T的子类型。
在继承的时候,父类出现的地方子类就可以出现,子类可替代父类,因为子类中有父类的方法,然而父类却不可以替代子类,因为子类中可能有父类没有的方法。这就是所谓的向下转型是不安全的。
使用继承有很多优...
分类:
其他好文 时间:
2015-07-21 22:21:00
阅读次数:
120
前言
本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(The Liskov Substitution Principle )。
英文原文:http://freshbrewedcode.com/derekgreer/2011/12/31/solid-javascript-the-liskov-substitution-principl...
分类:
编程语言 时间:
2015-07-17 14:06:13
阅读次数:
201
前言
Bob大叔提出并发扬了S.O.L.I.D五大原则,用来更好地进行面向对象编程,五大原则分别是:
The Single Responsibility Principle(单一职责SRP)The Open/Closed Principle(开闭原则OCP)The Liskov Substitution Principle(里氏替换原则LSP)The Interface Segrega...
分类:
编程语言 时间:
2015-07-17 14:05:31
阅读次数:
148
单一职责原则:Single Responsibility Principle (SRP)
一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。
T负责两个不同的职责...
分类:
其他好文 时间:
2015-07-13 12:11:53
阅读次数:
127
1.里氏替换原则: 在一个软件系统中,如果子类能替代父类出现的位置,而对整个软件的功能没有任何影响,那么就称为里氏替换原则2.实现面向对象的多态性有哪几种方法? 总共有3种, 第一种,虚方法实现多态, 第二种:抽象方法实现多态 第三种:接口实现多态 目前为止,我们学了两种: ...
分类:
其他好文 时间:
2015-07-13 08:56:06
阅读次数:
127
使用虚方法或抽象方法实现多态 方法重写 里氏替换原则 父类类型作为参数和返回值
分类:
其他好文 时间:
2015-07-12 14:05:08
阅读次数:
179
1、掌握设计模式 2、单一职责原则3、里氏替换原则4、依赖倒置原则5、接口隔离原则6、迪米特法则7、开闭原则8、单例模式与垃圾回收9、单例模式10、工厂方法模式11、抽象工厂模式12、建造者模式13、原型模式14、创建类模式总结篇15、模版方法模式16、中介者模式17、观察者模式18、访问者模式19...
分类:
其他好文 时间:
2015-07-07 16:26:25
阅读次数:
149
里氏替换原则是1987年麻省理工学院一位姓里的女士提出的关于继承方面的原则:子类必须确保父类的行为不被修改,即子类不能覆盖父类的非抽象方法。只有这样才能确保子类能够替换父类的任何对象。通俗一点说就是 老鼠的儿子会打洞。 里氏替换原则是关于继承方面的原则,子类可以实现父类的抽象方法,不能覆盖非抽...
分类:
其他好文 时间:
2015-07-05 16:30:42
阅读次数:
98
里氏替换原则是,同组的有类的两个子类,在使用子类A这个地方(方法/属性)您可以使用子类B代替.对于面向接口编程,我只需要确保同样的行为代码;基类的所有子类必须全部实现,换过来,子类的方法基类不一定都有;如果:有一个基类Base;其子类是Concrete;那么method(Base b)的调用能够转换...
分类:
其他好文 时间:
2015-07-03 20:29:27
阅读次数:
113