核心: 稳定、灵活、健壮(
高内聚, 低耦合
)
1.接口单一职责原则(SRP)
单个接口或者模块提供的功能职责单一化
例如:
电脑零件, 每一个零件对应一个接口并非一个接口包含所有
2.里氏替换原则(LSP)
对继承所提出约束(可少继承多组合
)
1.子类尽可能的不去覆盖父类已经实现的函数
2.子类可单独提供自己独有的函数
3.父类已实现的方法, 拒绝重写一般可使用final修饰
4.父类尽可能提供抽象方法
3.依赖倒转原则(DIP)
下层模块引入上层模块的依赖,改变原有自上而下的依赖方向
例如: 面向实现编程转为面向接口编程
4.迪米特法则(LoD)
又称最少知识原则
只与朋友交谈, 不和陌生人说话. 即: 减少不必要的耦合
当前对象朋友的界定:
1.聚集对象(静态聚集-组合,动态聚集 - 聚合)
2.函数入参对象
PS: 朋友的朋友不是朋友, 谨记过犹不及
5.接口隔离原则(ISP)
类应尽可能的去实现最小接口, 不应该被迫实现用不上的函数
即: 建立单一接口, 不要建立臃肿庞大的接口
含义:
1.接口要尽量小
不要违反单一职责原则。
要适度的小。要适度。
2.接口要高内聚
提高接口、类、模块的处理能力,减少对外的交互。
3.定制服务
通过对高质量接口的组装,实现服务的定制化。
6.开闭原则(OCP)
类、方法、模块应该对扩展开放,对修改关闭 — 用抽象构建框架, 用实现扩展细节
添加一个功能应该是在已有的代码基础上进行扩展,而不是修改已有的代码
例如: 多态的应用