-
单一职责原则
SRP: Single Responsibility Principle 原话解释是 “There should never be more than one reason for a class to change”
-
里氏替换原则
所有引用基类的地方可以透明的用子类替代。如下是里氏替换的四个规范
- 子类必须实现父类全部的方法
- 子类可以有自己的属性和方法
- 重载父类方法时,输入参数可以被放大
- 重载或重写父类方法时,返回类型可缩小
-
依赖倒置原则
DIP:Dependence Inversion Principle.原话解释是 “High level modules should not depend on low modules.Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstractions. ”
汉化版如下:- 高层模块不应依赖底层模块,两者都要依赖抽象。
- 抽象不应依赖具体
- 具体应该依赖抽象
-
接口隔离原则
接口分类:实例接口(new XXX()),类接口(interface)
接口隔离是对接口和类的定义。接口和类尽量使用原子接口或原子类。原子性可根据以下几个规则衡量。- 一个接口只服务于一个子模块或业务逻辑
- 通过业务逻辑压缩接口中的public方法。
- 接口变更风险大的,可用适配器模式进行处理
- 接口拆分标准不同,好的设计需要深入了解业务逻辑。
-
迪米特法则
迪米特法则也称为最少知识原则,一个对象对其依赖的对象内部知道的越少越好,具体内部实现多么复杂,调用者不关心。
迪米特法则对类的低耦合提出了明确要求,其包含以下4层含义。- 只和朋友交流
- 朋友间保持距离
- 是自己的就是自己的
- 谨慎使用Serializable
总结:低耦合,高内聚
-
开闭原则
开闭原则是以上5个原则的精神原则,是根本,它们是开闭原则的具体实现。
对扩展开放,对修改关闭
详述:通过扩展改变软件实体,而非修改现有代码改变软件实体。
Software entities likes classes,modules and functions should open for extension but closed for modifications
总结
六大原则和称 SOLID(稳定的)。朝着六个原则的方向努力,可以很好的改善系统,真正做到“拥抱变化”
原则只供参考,如果违背原则,项目也未必做不成,这需要大家在使用原则时反复的度量,不遵循是不对,严格执行“过犹不及”