介绍
组合模式是一种结构型设计模式,它允许将对象组合成树形结构,并且能够像对待单个对象一样对待整个组合对象。
角色
角色 | 说明 |
---|---|
Composite | 组合对象 |
Leaf | 叶子对象 |
角色示例
在这个示例中,抽象组件类
Component
定义了组件的基本方法,包括add()
、remove()
和display()
方法。叶子组件类Leaf
继承自Component
类,但是它不能添加或删除子组件,因为它没有子组件。容器组件类Composite
继承自Component
类,可以添加和删除子组件,并且可以显示自己的名称以及子组件的名称。我们通过创建一个组件树来演示组合模式的使用,然后通过调用根组件的display()
方法来显示整个组件树。
代码
1 | <?php |
创建 Component.php,内容如上。
执行
1 | $ php Component.php |