任何人都可以解释为什么名称“装饰者”选择装饰设计模式传达的功能?

我总是发现这个名字相当误导,因为装饰师和标记界面听起来与我的目的非常相似。然而,虽然标记物并不真正“做任何事情”,但装饰者肯定会这样做。但是对我来说装饰一词意味着被动性,这种用于添加功能的模式并非如此。

有帮助吗?

解决方案

我认为该术语的来源来自使用不同组件装饰用户界面的示例,例如,滚动条,关闭按钮等。

编辑:“C#中的设计模式”中的参考页308作者:Steven John Metsker:

  

DECORATOR的原始应用程序之一(可能是DECORATOR派生名称的应用程序)在于构建GUI组件。

其他提示

我认为类比是当你装饰一个房子时,你并没有真正打破任何墙壁或任何类似的东西,你只需要改变一些东西(尽可能多的东西),改变它的外观(和它的功能)。我认为这个词的选择意味着非侵入性,也是一种可选的。

装饰者“装饰”一个接口,通过向现有方法添加额外的功能,但实际上不添加任何自己的方法。装饰对基本功能不是必不可少的;否则它将被内置到基类中。

因为您要向现有对象添加新功能。从本质上讲,你是“装饰”的。具有新功能的对象。

嘿,留给极客来弥补名字。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top