的正确使用,我努力学习装饰设计模式。装饰图案
的情景我虽然有一个良好的使用和学习编码其计算方法如下:
的命令行输出程序。装饰器将包装一个outputText类并为输出添加额外的功能,例如文本颜色,粗体文本,闪烁文本等。
这会被认为是这种模式的一个很好的用法,或者我错过了它的要点吗?
的正确使用,我努力学习装饰设计模式。装饰图案
的情景我虽然有一个良好的使用和学习编码其计算方法如下:
的命令行输出程序。装饰器将包装一个outputText类并为输出添加额外的功能,例如文本颜色,粗体文本,闪烁文本等。
这会被认为是这种模式的一个很好的用法,或者我错过了它的要点吗?
我认为你的想法是合理的。它与GoF book中给出的文本编辑器示例非常相似。
在那本书中,他们使用文本编辑器的例子,用于绘制窗口的类,粗体文本等。他们在一章中使用了模仿你描述的装饰模式的例子,所以我会说你'重新走上正轨。
所以采取进一步行动,你将有斜体文字装饰类,另一个用于加粗文字,OK等,人们可以说,你可以有一个类来为你做例如这TextFormatter
,但你只需要使用什么是适合你的情况。
装饰器模式允许通过使用授权而不是继承的添加功能(结构和behavioarl)。你的例子恰恰是它的一个很好的应用。其优点是这样的事实,你可以有一个数量级的不同装饰的,而无需创建继承关系的面条图形库。
此维基百科页面提供了有关这种模式
更多信息