设计模式的七原则

设计模式的原则:设计模式为什么这样做的依据

  • 单一职责
    • 一个类值负责一项职责
    • 不一定是类级别的单一职责,也可以是方法级别来遵从单一职责
    • 核心思想:降低类的复杂度
    • 作用:
      • 提高类的可读性与可维护性;
      • 降低变更的风险;
      • 只有代码足够简单,才能违反单一职责
  • 接口隔离
    • 当一个接口的很多实现类,它们需要实现该接口的所有方法,但是这些实现类的很多方法不会被使用,那么这些方法就没有任何意义了
    • 这个时候,就有必要拆分接口了
    • 最小接口:实现类的方法都会被使用的接口
    • 定义:image-20211116105140825
  • 依赖倒转
    • 父类不能依赖子类,二者都应该依赖抽象(抽象类,接口)
    • 抽象不应该依赖细节,细节应该依赖抽象
    • 中心思想:面向接口编程
    • 抽象的东西要稳定的多
    • 具体使用:
      • 在进行传参的时候,我们可以使用接口来定义传参,这样如果我们要新增差不多的其他类的时候,就不用专门新增方法,这样就简单很多了,我只需要让新的类来实现这个接口,然后传入就ok了
      • 通过构造器来实现,放在类中。这种用法其实挺多的
      • 通过setter实现(这个和构造器差不多,没啥区别)
  • 里式替换
    • 使用继承时,尽量不要重写父类的方法
    • 你重写了,继承父类干什么,有什么意义?
    • 如果迫不得已需要重写,可以通过聚合,组合,依赖等,让这个类上升,和父类共同继承一个base类,将方法抽取
    • 你重写了,就不透明了,不知道你的执行逻辑了,而且和父类不一样,这就很尴尬。。可能会用错
  • 开闭原则
    • 对扩展开放(提供方),对修改关闭(使用方)
    • 用抽象构建框架,用实现扩展细节
    • 当需要变化时,通过扩展,而不是修改
  • 迪米特
    • 直接朋友:出现在成员变量,方法参数,方法返回值的类是直接朋友;而局部变量的类不是直接的朋友,是陌生类
    • 使用方对被使用方竟可能少的了解,尽量把被使用方的细节给放到被使用方内部去
    • 尽量少对直接朋友进行操作,将这些操作放到直接朋友里
  • 合成复用
    • 尽量使用合成/聚合的方式,而不是使用继承

おすすめ

転載: blog.csdn.net/qq_34687559/article/details/121356689