书中4.3节是COMPOSITE模式,下面是书中给的类结构图:
并告诉我们说这是递归组合。
而书中给的例子并不好理解。在我看来,COMPOSITE模式就是组合对象和单个对象的类继承自同一个基类。比如说,CPU、主板、内存、声卡、显卡都是是电脑设备,而它们组合在一起的电脑主机也是电脑设备,主机和显示器组合成的电脑也是电脑设备。它们的基类都是一个--电脑设备类。
这样做的好处就是:用户可以统一的使用组合结构中的所有对象,并且可以更容易的增加新类型的组件。比如我给电脑新添加了一个摄像头,用户可以像使用其他电脑设备一样的使用,如果他不用摄像头的话,那他的程序就不用改变。