面向对象设计的六大基本原则
一、单一职责原则(SRP Single Responsibility Principle)
不要存在多于一个导致类变更的原因。通俗来说,即一个类只负责一项职责。
二、里氏替换原则(LSP Liskov Substitution Principle)
1. 如果对每一个类型为T1的 对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型。
2. 所有引用基类的地方必须能透明地使用其子类对象。
三、依赖倒置原则(DIP Dependence Inversion Principle)
高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;
要针对接口编程,不要针对实现编程。
四、接口隔离原则(ISP Interface Segregation Principle)
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
五、迪米特法则(LOD Law of Demeter)
一个对象应该对其他对象保持最少的了解。
只与你直接的朋友通信,而避免和陌生人通信。
六、开闭原则(OCP Open-Close Principle)
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。