1.单一职责原则
- 单一职责原则:软件模块应该只有一个被修改的理由。
- 单一职责模式是一种面向对象的设计原则。
- 在大多数情况下,编写Java代码时都会将单一职责原则应用于类。
- 每个类只负责自己的事情,而不是变成万能
2.开闭原则
- 开闭原则:模块、类和函数应该对扩展开放,对修改关闭。
- 我们必须想象:开发的软件正在构建一个复杂的结构,一旦我们完成了他的一部分,不应该再修改它,而是应该在它的基础上继续建设。
- 扩展新类而不是替换旧类。
3.里氏替换原则
- 里氏替换原则两种定义
- 定义1:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
- 所有引用基类的地方必须能透明地使用其子类的对象。
- 继承父类而不去改变父类。
4.接口隔离原则
- 接口隔离原则:客户端不应该依赖于它不需要的接口。
- 一个类对另一个类的依赖应该建立在最小的接口上。
- 各个类建立自己的专用接口,而不是万能接口。
5.依赖倒置原则
- 依赖倒置原则:高级模块不应该依赖于低级模块,两者都应该依赖与抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
- 面向接口编程,而不是面向实现类
6.迪米特法则(最少知识原则)
- 迪米特法则:一个对象应该对其他对象有最少的了解。一个对象应该对其他对象有最少的了解。
- 通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心。
- 只与你的直接朋友交谈,不与陌生人说话
- 无需直接交互的两个类,如果需要交互使用中间者。