GoF设计模式中装饰器、代理与适配器的区别与联系 - Mario


一些设计模式具有相似的结构,但意图不同。例:

  • 装饰器:向对象添加新职责。
  • 代理:控制对对象的访问。
  • 适配器:更改对象的接口。

不同的意图,但是这三个可以看作是对象包装器。

这在设计模式中经常发生。类似的构造会代表非常不同的意图和命名约定。
 
实际上,如果您考虑一下,GoF书中每个模式的第一部分就是“意图”,并且每个模式都有一个“相关模式”部分,因为它们之间有相似之处。
 
永远不要通过其形状来判断模式,结构过于高,必须检查其看行为,这就是为什么静态设计图表会失败的原因。
 
我认为,模式的最重要部分是其意图。这是真正帮助我们区分模式并使它们强大的功能。

补充,外观模式:将一个或多个接口隐藏在一个通用,更清晰且合适的接口后面