设计模式 简介

130 阅读2分钟

这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

设计模式是一种软件编写的模式,类似模板的感觉,在不同的场景下可以套用不同的模板,减少弯路,直接吃历史遗留的经验包。

在经典的GOF23中,一共有23种设计模式,可以分为3大类分别是:

  • 创建型模式
  • 结构型模式
  • 行为型模式

以及论外的一种模式:J2EE设计模式

这些设计模式无一例外都遵循以下原则:

  • 接口隔离原则
    • 不同抽象的接口分开定义会比合在一起定义更好,降低接口、类之间耦合程度
  • 迪米特法则(最少知道法则)
    • 每个抽象内应该尽可能抽象完整,避免需要与其他抽象共同合并才能完整表示某个抽象范围
  • 依赖倒转原则
    • 即,针对接口编程,而不是针对实现编程
  • 合成复用原则
    • 尽可能使用合成、聚合的方式,而不是继承
  • 里氏替换原则(LSP)
    • 任何基类出现的地方,一定可以使用子类替代。也即派生类是基类完全替换的同时,派生类实现了自己的一些功能
  • 开闭原则
    • 开,即对扩展开放
    • 闭,即在扩展时,不允许对旧代码进行修改
    • 对于代码实现一个热插拔的功能,易于维护和升级
    • 对于代码而言,需要使用接口以及抽象类

从描述上来看这几个原则实际上是由先后顺序的

在抽象的设计上来说,需要遵守:迪米特法则、接口隔离原则

在进行抽象实现的时候,需要遵守:合成复用原则、依赖倒转原则

在使用实现进行程序构建的时候,需要遵守:里氏替换原则、开闭原则

总而言之就是:合理的抽象,自下而上地多组合、少继承,写可插拔、扩展性好的代码