【发布时间】:2019-01-24 00:29:20
【问题描述】:
为什么装饰器是一种结构模式而责任链不是?
这两者之间的唯一区别是,一个无论如何都会传递,而另一个将由一个对象处理。
这种差异如何使一种模式成为结构模式和另一种行为模式?
【问题讨论】:
-
装饰器模式基本上包装了一个已经存在的类,然后向它添加一些功能。我想这使它具有结构性。责任链就是将一个类的实现委托给另一个实现,这是行为上的。
-
@Tim Decorator 模式也使用委托。 stackoverflow.com/questions/13389544/…
-
根据装饰者模式的维基百科页面,我没有看到委托是委托者模式的主要角色。
-
@Tim 我在两个地方看到了“委托”这个词。对于责任链页面,我没有看到任何内容。
-
是的,委派正是责任链的意义所在。也许装饰器确实将行为从它包装的类委托给已经存在的类。
标签: design-patterns