单一职责原则,就一个类而言,应该仅有一个引起它变化的原因。
开放-封闭原则,是说软件实体应该面向扩展开发,面向修改关闭。
依赖倒转原则,
A:高层模块不应该依赖底层模块。两个都应该依赖抽象
B:抽象不应该依赖细节。细节应该依赖抽象。
里氏代换原则, 凡是父类能出现的地方,子类都应该能出现。
迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
合成/聚合复用原则,尽量使用合成/聚合,尽量不要使用类继承。
接口隔离原则
使用多个专门接口来取代一个统一的接口,
一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中。
接口隔离原则核心:不应该强迫客户端程序依赖他们 不需要的使用方法