SOLID原则
单一职责原则 SRP
就是一个类只负责一项功能或一类相似的问题。 假如类T负责职能P1, P2。当修改P1时,P2功能可能会发生故障。
-
优点
- 功能单一, 职责清晰
- 增强可读性, 方便维护
-
缺点
- 拆分得太仔细, 类的数量会增加
- 职责的度量没有统一的标准, 需要根据项目实际情况而定
开放封闭原则 OCP
软件实体应该对扩展开放, 修改封闭。 增加功能时尽量不去修改已有的代码, 当修改一个模块时不应该影响到别的模块
里氏替换原则 LSP
只有父类能出现的地方,子类也能出现, 反之则不能。
依赖倒置原则 DIP
把具有相同特征或相似功能的类, 抽象成接口或者抽象类, 让具体的实现类继承这个抽象. 抽象类负责定义统一的方法, 实现类负责具体功能的实现.
接口抽离原则 ISP
建立单一接口, 不要建立庞大臃肿的接口, 尽量细化接口, 接口中的方法尽量少。接口尽量小, 但是要有限度. 当发现一个接口过于臃肿时就要对这个接口进行适当的拆分. 但是接口过小, 则会造成接口数量过多, 使设计复杂化.
- 优点
- 提高程序设计的灵活性. 将接口进行细分后,多个接口可自由发展, 互不干扰
- 提高内聚, 减少对外交互. 使接口用最少的方法去完成最多的事情
- 为依赖接口的类定制服务. 只暴露给调用的类需要的方法, 不需要的方法隐藏起来
总结
软件设计是一个逐步优化的过程
- 单一职责原则告诉我们实现类的职责要单一
- 里氏替换原则告诉我们不要破坏继承体系
- 依赖倒置原则告诉我们要面向接口编程
- 接口隔离原则告诉我们在设计接口的时候要经简单一
- 开放封闭原则告诉我们要对扩展开放, 修改封闭
不是一定要遵循这些设计原则
视情况而定, 时间成本, 测试成本, 代码改动难度。尽量遵循 要有取舍。

浙公网安备 33010602011771号