创建型模式

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

结构型模式

这些模式关注对象之间的组合和关系,旨在解决如何构建灵活且可复用的类和对象结构。

  • 代理设计模式 在不修改类的情况下,去对类进行增强(切点)
  • 适配器设计模式 在不修改原类的基础上去改变类的实现(例如:三插孔适配为两插孔)
  • 装饰器设计模式 装饰强调自身透明扩展,代理是强调封装性外部扩展,同时也可以看成特殊的代理模式
  • 桥接设计模式 在两个或两个以上的带有继承关系的可以作为独立维度的类中进行扩展。本质上是组合搭配。
  • 外观设计模式 提供了一个统一的接口,用来访问子系统中的一群接口。
  • 组合设计模式 适用于有多层级关系且功能趋于相同。
  • 享元设计模式 类似于线程池,String类型就是使用了享元模式。

行为型模式

这些模式关注对象之间的通信和交互,旨在解决对象之间的责任分配和算法的封装。

  • 模板设计模式 定义抽象方法,把公用的进行实现,自定义的抽象,子类继承,进行重写需要,提高代码的复用性。
  • 策略设计模式 主要是用于减少if..esle语句,把各个算法独立出来,然后定义上下文类供客户端调用
  • 命令设计模式 主要是用于调用者和请求接收者需要解耦

参考