概念示例
本例说明了装饰设计模式的结构并重点回答了下面的问题:
- 它由哪些类组成?
- 这些类扮演了哪些角色?
- 模式中的各个元素会以何种方式相互关联?
了解该模式的结构后, 你可以更容易地理解下面基于真实世界的 PHP 应用案例。
index.php: 概念示例
Output.txt: 执行结果
真实世界示例
在本例中, 装饰模式将帮助你创建复杂的文本过滤规则来清理内容, 然后再将其渲染在网页上。 不同类型的内容 (例如评论、 论坛帖文或私信) 需要一组不同的过滤器。
例如, 你希望去掉评论中的所有 HTML 标签, 同时仍然希望在论坛帖文中保留一些基本的 HTML 标签。 此外, 你可能希望允许用户使用 Markdown 格式发帖, 而它必须在所有 HTML 过滤器执行前进行处理。 所有这些过滤规则都可以使用单独的装饰类进行表示, 并且能根据内容的特点以不同方式叠加使用。
index.php: 真实世界示例
Output.txt: 执行结果