我认为自己具有 GoF 设计模式的中级知识。但是,在将这些模式分类为结构模式和行为模式时,我感到困惑。我对创造模式没有任何困惑。
来自维基百科 - 装饰模式 - 在面向对象编程中,装饰模式是一种设计模式,允许 行为 静态或动态地添加到单个对象,而不会影响来自同一类的其他对象的行为。
从上面的定义很明显它是关于行为的,那么
谢谢。
最佳答案
行为模式是关于独立对象之间的通信:诸如中介者、观察者、责任链(甚至访问者,这被描述为“将算法与其操作的对象结构分离”)。它们指定了单独的对象如何交互。
结构模式是关于组合和分层抽象的方法,它们是诸如适配器、桥接和组合之类的东西。装饰器是一种组合功能的技术,因此它与结构模式相匹配。
关于design-patterns - 为什么装饰器是一种结构而不是行为设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906563/