概念示例
本例说明了组合设计模式的结构并重点回答了下面的问题:
- 它由哪些类组成?
- 这些类扮演了哪些角色?
- 模式中的各个元素会以何种方式相互关联?
了解该模式的结构后, 你可以更容易地理解下面基于真实世界的 PHP 应用案例。
index.php: 概念示例
Output.txt: 执行结果
真实世界示例
组合模式可以精简任何使用树状递归结构的工作。 HTML DOM 树就是这种结构的例子。 例如, 各种输入元素可担当叶节点, 而表单和字段集则可担当组合的角色。
请记住, 你可以用组合模式以对待树结构内部元素的方式来在整个 HTML 树上执行各种行为, 而又无需让代码与 DOM 树的具体类相耦合。 此类行为的示例可以是渲染 DOM 元素、 将其导出为多种格式、 校验其组件等等。
使用组合模式时, 你无需在执行行为前检查元素类型是简单还是复杂。 它会根据元素类型决定是马上执行, 还是将其传递给该元素的所有子元素。
index.php: 真实世界示例
Output.txt: 执行结果