单一职责里氏替换依赖倒置接口隔离迪米特法则开闭
设计模式有六大法则(SOLID原则)。
1、单一职责(S,Single Responsibility Principle)
这好理解,每个类只干一样事情
2、开闭原则(O,Open Closed Principle)
对扩展开放,修改闭合。
怎么那么像里氏替换?但里氏替换说的是父子类,开闭原则说的是:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
3、里氏替换(L,Liskov Substitution Principle)
所有引用基类的地方必须能透明地使用其子类的对象
子类可以扩展父类的功能,但不要修改父类的功能。意为:
1)子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
2)子类可以增加自己的方法
3)子类重载父类方法时,输入参数应该比父类宽松
4)子类实现父类方法时,返回值应该比父类严格
4、迪米特法则(L,Law of Demeter)
又叫最少知道原则。尽量少引用其他对象,以减少类之间的耦合。但凡事都有度。
5、接口隔离(I,Interface Segregation Principle)
接口粒度最小化。
类不要实现它不需要的接口
6、依赖倒置(D,Dependence Inversion Principle)
面向接口编程
1)上层模块不应该依赖底层模块,它们都应该依赖于抽象。
2)抽象不应该依赖于细节,细节应该依赖于抽象。
总结:
单一职责原则告诉我们实现类要职责单一;
里氏替换原则告诉我们不要破坏继承体系;
依赖倒置原则告诉我们要面向接口编程;
接口隔离原则告诉我们在设计接口的时候要精简单一;
迪米特法则告诉我们要降低耦合。
而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。