依赖倒转原则
1、高层模块不应该依赖低层模块,两者都应该依赖抽象。
2、抽象不应该依赖细节,细节应该依赖抽象。
通俗来讲,不依赖抽象,就意味着将高层模块与低层模块绑在了一起,二高层模块与底层模块都对应着具体实现,如果想要更改需求就必须拆开后更改。但这是让人不悦。
里氏代换原则
子类必须能改替换父类,并且程序的运行不出现改变,这样才能进行扩展。
dalao博客
单一职责原则
一个类应该只有一个引起它变化的原因。
即类的功能应该尽可能细分。
开放-封闭原则
对扩展开放,对修改封闭。想要好好实现这个原则,就必须遵循依赖倒转原则,里氏代换原则,合成聚合原则等。
最少知识原则
不要让一个类依赖太多其它的类,要做到高内聚低耦合。避免牵一发而动全身。
接口隔离原则
接口的职责应该细分,不要让类实现它不需要的接口方法。
合成/聚合原则
尽量使用合成聚合,减少使用继承
聚合:每个类都是独立的,类可以被其他类使用,他们之间没有强制的联系。就像班级和学生。
合成:部分被整体所决定。就像人和各个器官。