六大设计原则总结

288 阅读4分钟

六大设计原则总结

单一职责原则

概念

  • 一个类只负责完成一个职责/功能

作用

    1. 提高类的内聚性
    1. 实现代码高内聚,低耦合

不满足的4中情况

    1. 类中代码、函数、行数过多
    1. 类依赖的其他类过多
    1. 私有方法过多
    1. 类中大量的方法都是集中操作类中的几个属性

开闭原则

概念

  • 对扩展开放,对修改关闭
  • 开闭原则并不是说完全杜绝修改,而是以最小的修改代码代价来完成新功能的开发

作用

    1. 新老逻辑解欧,需求发生改变不会影响老业务逻辑
    1. 改动成本最小,只需要追加新逻辑,不需要改老逻辑
    1. 提供代码的稳定性和可扩展性

如何做到开闭原则

  • 锻炼顶层思维

    • 扩展意识
    • 封装意识
    • 抽象意识
  • 提高代码扩展性的方式

    • 多态
    • 依赖注入
    • 面向接口编程
    • 合理使用设计模式

里氏替换原则

概念

  • 子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏

作用

    1. 为良好的继承定义类一个规范
    1. 提高代码健壮性,降低程序出错的可能性

里氏替换原则与多态区别

  • 多态是面向对象编程的一大特性,也是面向对象编程语言的一种语法,它是一种代码实现的思路
  • 里氏替换是一种设计原则,用来指导继承关系中子类该如何设计,子类的设计要保证在替换父类的时候,不改变原有程序的逻辑及不破坏原有程序的正确性

接口隔离原则

概念

  • 一个类对另一个类的依赖应该建立在最小的接口上,要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用

作用

    1. 提高系统的灵活性和可维护性
    1. 减少项目工程中的代码冗余

接口隔离与单一职责原则的区别

  • 单一职责原则注重的是职责,而接口隔离原则注重的是接口依赖的隔离
  • 单一职责原则主要是约束类,它针对的是程序中的实现和细节; 接口隔离原则主要约束接口,主要针对抽象和程序整体框架构建

依赖倒置原则

概念

  • 高层模块不应该依赖与底层模块,二者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象

作用

  • 减少类间的偶合性,提高系统的稳定性
  • 降低并行开发引起的风险
  • 提高代码的可读性和可维护性

依赖倒置、控制反转、依赖注入

  • 依赖倒置:是一种通用的软件设计原则,主要用来指导框架层面的设计
  • 控制反转:与依赖倒置有一些相似,它也是一种框架设计常用的模式,但并不是具体的方法
  • 依赖注入:是实现控制反转的一个手段,它是一种具体的编码技巧

迪米特法则

概念

  • 不应该直接依赖关系的类之间,不要有依赖; 有依赖关系的类之间,尽量只依赖必要的接口

作用

  • 如果两个软件实体无需直接通信,那么就不应该发生直接的互相调用,可以通过第三方转发该调用,其目的是降低类之间的偶合度,提高模块的相对独立性

使用注意

  • 过度使用迪米特法则会是系统产生大量的中介类,从而增加系统复杂度,使模块的通信效率降低,所以在采用迪米特法则时需要反复权衡,确保高内聚和低耦合的同时,保证系统的结构清晰

六大设计原则.png