单一职责原则
-
针对某个类,我们希望它只负责一件事。
-
这样的好处在于能够降低类的复杂度,并且在修改的时候,变化是最小的,假如该类负责两件事,实现了两个方法A和B,如果改动A,是有可能导致B无法正常使用的。
开闭原则
- 开闭原则的定义是针对软件中的目标对象(类、函数、模块)来说,对扩展是开放的,对修改是关闭的。
- 修改往往可能引入新的错误。
里氏替换原则
子类可以去扩展父类的功能,但是不能改变父类原有的功能,有以下几层意思
-
子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。
-
子类可以增加自己独有的方法。
-
当子类的方法重载父类的方法时候,方法的形参要比父类的方法的输入参数更加宽松。
-
当子类的方法实现父类的抽象方法时,方法的返回值要比父类更严格。
依赖倒置原则
- 高层次模块不应该直接依赖于低层次模块,而是通过抽象来实现这个依赖,俗称面向接口编程
- Java中的接口、抽象方法都算是抽象,具体实现类称为细节
- 依赖倒置原则也是一种解耦方式
迪米特原则
- 也叫做最小知识原则,即一个类对象对另一个对象的了解应该是最小的