【发布时间】:2011-05-30 23:15:40
【问题描述】:
我第一次使用装饰器模式,作为 Uni 项目的一部分。据我所见,该模式似乎更多地用于以模块化方式添加功能,但是我们已经学会了使用诸如咖啡或比萨饼机之类的用途,其中对象具有添加的模块化组件-更改属性而不是行为。
我正在尝试充分利用这两种用途,但是我提出了一个问题。在我们使用的书中的示例(Head First Design Patterns)中,该模式用于咖啡店制作不同的咖啡。因此,例如,牛奶、泡沫、糖、糖屑都是装饰物。
您将如何实现一个多次使用相同装饰器的系统(例如,加了两种糖的咖啡)?你会重新包装咖啡,还是给糖一个数量属性?或者(正如我开始怀疑的那样)这永远不会成为问题,因为该模式并非旨在以这种方式使用?
【问题讨论】:
-
我倾向于向装饰器添加一个数量字段,但是多次应用同一个装饰器的想法很有趣。您可以尝试两种方式,看看您最喜欢哪种方式。
标签: java design-patterns decorator