单一职责原则
- 降低类的负责度,一个类只负责一项职责。
- 提高类的可读性,可维护性。
- 降低变更引起的风险
接口隔离原则
- 客户端不应该依赖它不需要的接口,即一个类对于另一个类的依赖应该建立在最小的接口上。
依赖倒转原则
- 高层模块不应该依赖底层模块,二者都应该依赖其抽象。
- 抽象不应该依赖细节,细节应该依赖抽象。
- 依赖倒转的中心思想是面向接口编程。
- 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多,以抽象为基础搭建的架构比细节为基础的架构要稳定的多。在JAVA中,抽象指的是接口或者抽象类,细节就是具体的实现类。
- 视同接口或抽象类的目的是制定好规范,而不涉及任何具体操作,把展现细节的任务交给他们的实现类去完成。
里氏替换原则
- 如果每个类型为T1的对象O1,都有类型为T2的对象O2,使得T1定义的所有程序P的所有对象O都替换成O2时,程序P的行为没有发生变化,那么类型T2时类型T1的子类型。换句话说,所有引用基类的地方必须能透明地使用其子类的对象。
开闭原则
一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。
迪米特法则
- 迪米特法则又叫做最少知道原则,就是说一个对象应当对其它对象有尽可能少的了解,不要和陌生人说话。
- 强调只和朋友说话,不和陌生人说话。这里的朋友指的是:出现在成员变量,方法输入,输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。
- 迪米特法则初衷在于降低类之间的耦合。由于每个类尽量减少对其它类的依赖,因此。很容易使得系统的功能模块独立,相互之间不存在(或很少有)依赖关系。