SOLID原则

单一职责原则 SRP

  就是一个类只负责一项功能或一类相似的问题。 假如类T负责职能P1, P2。当修改P1时,P2功能可能会发生故障。

  • 优点

    1. 功能单一, 职责清晰
    2. 增强可读性, 方便维护
  • 缺点

    1. 拆分得太仔细, 类的数量会增加
    2. 职责的度量没有统一的标准, 需要根据项目实际情况而定

开放封闭原则 OCP

  软件实体应该对扩展开放, 修改封闭。 增加功能时尽量不去修改已有的代码, 当修改一个模块时不应该影响到别的模块

里氏替换原则 LSP

  只有父类能出现的地方,子类也能出现, 反之则不能。

依赖倒置原则 DIP

  把具有相同特征或相似功能的类, 抽象成接口或者抽象类, 让具体的实现类继承这个抽象. 抽象类负责定义统一的方法, 实现类负责具体功能的实现.

接口抽离原则 ISP

  建立单一接口, 不要建立庞大臃肿的接口, 尽量细化接口, 接口中的方法尽量少。接口尽量小, 但是要有限度. 当发现一个接口过于臃肿时就要对这个接口进行适当的拆分. 但是接口过小, 则会造成接口数量过多, 使设计复杂化.

  • 优点
    1. 提高程序设计的灵活性. 将接口进行细分后,多个接口可自由发展, 互不干扰
    2. 提高内聚, 减少对外交互. 使接口用最少的方法去完成最多的事情
    3. 为依赖接口的类定制服务. 只暴露给调用的类需要的方法, 不需要的方法隐藏起来

总结

软件设计是一个逐步优化的过程

  • 单一职责原则告诉我们实现类的职责要单一
  • 里氏替换原则告诉我们不要破坏继承体系
  • 依赖倒置原则告诉我们要面向接口编程
  • 接口隔离原则告诉我们在设计接口的时候要经简单一
  • 开放封闭原则告诉我们要对扩展开放, 修改封闭

不是一定要遵循这些设计原则

  视情况而定, 时间成本, 测试成本, 代码改动难度。尽量遵循 要有取舍。

posted @ 2019-08-13 14:06  史八一  阅读(156)  评论(0)    收藏  举报