一、里氏替换原则。
里氏替换原则(LSP)简而言之就是子类要完全实现父类的外在表现。通俗的讲就是“老鼠的儿子会打洞”。
举个例子说比如说鸟类会飞,鸟这一大类的子类,大雁,麻雀,丹顶鹤都应该会飞。这样就是符合里氏替换原则的。
但是不是所有的鸟都会飞的,比如说企鹅。企鹅就不会飞,但是却被归为鸟类。在计算机中的继承和自然界的继承是不一样的。计算机的子类如果不符合里氏替换原则就会让既有的设计无法封闭。
那么怎么改呢,鸟类会飞,企鹅不会飞,那么就是说企鹅不能继承鸟类,它可以继承动物类,或者哺乳动物类等等(这里只是举个例子)。
LSP:子类必须能够替换掉它的父类型.EG: B extends A—–>B is A.
二、依赖倒置原则
a、上层不应该依赖下层模块,两者都应该依赖抽象;
b、抽象不应该依赖于实现细节,实现细节依赖于抽象。
说白了就是要针对接口编程,不要对实现编程。
比如计算机中的硬盘坏了,那么只需要换个硬盘,而不用换整个电脑。换的硬盘只需要是符合接口的任何一块硬盘。
开放封闭
原则
(Open Closed Principle)是构建可维护性和可重用性代码的基础。它强调设计良好的代码可以不通过修改而扩展,新的功能通过添加新的代码来实现,而不需要更改已有的可工作的代码。抽象(Abstraction)和多态(Polymorphism)是实现这一
原则
的主要机制,而继承(Inheritance)则是实现抽象和多态的主要方法。
那么是什么设计规则在保证对继承的使...
里氏代换
原则
(LSP):子类型必须能够替换掉它们的父类(子类可以看做父类来使用)
依赖倒置原则
:高层模块不应该依赖于低层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。
子类型必须能够替换掉它们的父类型、并出现在父类能够出现的任何地方。
这个就是尽量用多态的方法编程,也就是GRASP模式中的多态。
如果对于每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。
换言之,一个软