首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用装饰器模式

正确使用装饰器模式
EN

Stack Overflow用户
提问于 2012-08-25 21:14:17
回答 2查看 234关注 0票数 2

我正在尝试学习装饰器设计模式。

我有一个很好的使用和学习编码的场景,如下所示:

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

这会被认为是对此模式的一种很好的使用吗?还是我错过了它的要点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-25 21:22:16

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

在那本书中,他们使用了文本编辑器的例子,带有绘制窗口,加粗的文本等类。他们在一章中使用了模仿你描述的装饰器模式的例子,所以我想说你是在正确的轨道上。

因此,进一步来说,你应该有一个用于斜体文本的装饰器类,另一个用于加粗文本的装饰器类,等等。好的,有人可能会说你可以有一个类来为你做这件事,比如TextFormatter,但你只需要使用适合你的情况。

票数 3
EN

Stack Overflow用户

发布于 2012-08-25 21:23:42

装饰器模式允许通过使用委托而不是继承来添加特性(结构和行为)。你的例子就是它的一个很好的应用。好处基于这样一个事实,即您可以拥有一个类的许多不同的装饰器,而不必创建继承关系的意大利面条图。

wikipedia页面提供了有关此模式的更多信息

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12122282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档