2012-08-25 52 views
2

的正确使用,我努力学习装饰设计模式。装饰图案

的情景我虽然有一个良好的使用和学习编码其计算方法如下:

的命令行输出程序。装饰器将包装一个outputText类并为输出添加额外的功能,例如文本颜色,粗体文本,闪烁文本等。

这会被认为是这种模式的一个很好的用法,或者我错过了它的要点吗?

回答

3

我认为你的想法是合理的。它与GoF book中给出的文本编辑器示例非常相似。

在那本书中,他们使用文本编辑器的例子,用于绘制窗口的类,粗体文本等。他们在一章中使用了模仿你描述的装饰模式的例子,所以我会说你'重新走上正轨。

所以采取进一步行动,你将有斜体文字装饰类,另一个用于加粗文字,OK等,人们可以说,你可以有一个类来为你做例如这TextFormatter,但你只需要使用什么是适合你的情况。

2

装饰器模式允许通过使用授权而不是继承的添加功能(结构和behavioarl)。你的例子恰恰是它的一个很好的应用。其优点是这样的事实,你可以有一个数量级的不同装饰的,而无需创建继承关系的面条图形库。

此维基百科页面提供了有关这种模式

http://en.wikipedia.org/wiki/Decorator_pattern

更多信息