1 单一职责原则
单一职责原则(SPR),就一个类而言,应该仅有一个引起它变化的原因。
2 开放-封闭原则
开放-封闭原则,是说软件实体(类、模块、函数等等),应该可以扩展,但是不可以修改。即对扩展开放,对修改封闭。
3 依赖倒转原则
依赖倒转原则
A. 高层模块不应该依赖于低层模块。两个都应该依赖抽象。
B. 抽象不应该依赖细节。细节应该依赖抽象。
4 里氏替换原则
里氏替换原则(LSP):子类型必须能够替换掉它们的父类型。
5 接口隔离原则
接口隔离原则(ISP),是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。
6 迪米特法则(最少知识原则)
迪米特法则(LoD),如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
Tips:
最少知识原则,通俗易懂的说,就是:一个类对于应该保持对其他类尽可能少的了解,只和朋友通信,不和陌生人说话。
7 合成复用原则
合成复用原则:多用组合、聚合,少用继承。
总结
设计原则的核心思想:
(1)找出代码中可能需要变化之处,把它们独立处出来,不要和那些不需要变化的代码混在一起。
(2)针对接口编程,而不是针对实现编程。
(3)为了交互对象之间的松耦合设计而努力。