design-patterns - 为什么装饰器是一种结构而不是行为设计​​模式?

标签 design-patterns conceptual

我认为自己具有 GoF 设计模式的中级知识。但是,在将这些模式分类为结构模式和行为模式时,我感到困惑。我对创造模式没有任何困惑。

来自维基百科 - 装饰模式 - 在面向对象编程中,装饰模式是一种设计模式,允许 行为 静态或动态地添加到单个对象,而不会影响来自同一类的其他对象的行为。

从上面的定义很明显它是关于行为的,那么

  • 为什么装饰器是一种结构模式?
  • 结构模式的标准是什么?
  • 行为模式的标准是什么?

  • 谢谢。

    最佳答案

    行为模式是关于独立对象之间的通信:诸如中介者、观察者、责任链(甚至访问者,这被描述为“将算法与其操作的对象结构分离”)。它们指定了单独的对象如何交互。

    结构模式是关于组合和分层抽象的方法,它们是诸如适配器、桥接和组合之类的东西。装饰器是一种组合功能的技术,因此它与结构模式相匹配。

    关于design-patterns - 为什么装饰器是一种结构而不是行为设计​​模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906563/

    相关文章:

    ios - 在两个 View 之间进行通信的更好方法是什么?

    oop - 一般而言,Swift 或 OOP 中元组的一些典型用例是什么?

    c++ - 我是否应该在所有对象需要它们时将我的服务定位器传递给它们?

    c++ - 如何在一个变量中存储不同的类?

    java - XML 文档的索引路径

    c# - 为什么Covariance和Contravariance这样命名?

    api - Eclipse 中的 IProject.setDescription 使用什么设计模式

    c# - 插件架构模式

    concurrency - 关于(类似工具)LoadRunner 的概念性问题

    algorithm - 在通用哈希表中查找项目?