2009-01-05 96 views
2

任何人都可以解释为什么命名为“装饰”被选为由装饰设计模式所传达的功能?为什么在装饰设计模式命名为“装饰”?

我总是发现,名称上很容易产生误导,因为装饰和标记界面的声音非常相似,我在他们的目的。然而,虽然标记并不真正“做任何事情”,但装饰者当然会这样做。但是对我来说,术语装饰意味着被动性,这种用于添加功能的模式并非如此。

+0

我想知道的部分原因是,对我来说,英语中的动词“装饰”的意思是“添加没有功能的美学”。至少在标记方面,标记功能是有潜力的。 – Uri 2009-01-05 20:08:21

回答

7

我认为,这个词的起源来自于实例的使用与装饰不同组件的用户界面,例如,滚动条,关闭按钮等

编辑:参考Page 308“设计在C#”模式由史蒂芬约翰Metsker:

一个DECORATOR的原始申请的(可能从DECORATOR得其名的应用程序)位于GUI组件的建设。

0

因为你添加新的功能,现有的对象。实质上,你用新功能“装饰”对象。

嘿,把它留给极客组成名字。

2

装饰器“装饰”的接口通过添加额外的功能,以现有的方法,但实际上没有增加任何自身。装饰对于基本功能来说不是必需的;否则它将被构建到基类中。

+0

却没有“装修”是指你添加了一些非实质性的? – Uri 2009-01-05 20:08:54

+0

这只是一个比喻。它的工作原理是因为我们已经同意软件设计意义上的含义。只要它足够好,它不是一个完美的比喻并不会降低它的效用。 – tvanfosson 2009-01-05 20:26:48

3

我觉得比喻是,当你装饰一栋房子时,你并不是真的打破任何墙壁或类似的东西,你只需要改变它的方式(尽可能多地)外观(及其功能)。我认为这个词被选中意味着非侵入性,也是可选的。