定义
组合模式是在集合和组件之间关系建立模型,是以树形结构表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
个人理解,组合模式可以类似于文件夹的目录结构。比如有一个书籍文件夹books,books下面可能含有书籍如《PHP手册》以及其他的文件夹如JAVA书籍等。
而一致性表示这些对象都拥有相同的接口
示例
1 | abstract class Unit |
输出 攻击强度:22
示例解读:
所有的对象均继承自Unit,都需要重写 bombardStrength 战斗力强度值。枪手和激光炮都有自己 战斗力,而有它们组成的 Army 也
包含 bombardStrength , 只不过Army的战斗力是由子对象遍历得到的。那么这些对象就可以自由组合,随意分拆了。