本文为敏捷软件开发 - 原则、模式与实践系列的一部分。
本文对应原书第23章
COMPOSITE模式是一个非常简单但具有深刻内涵的模式。
上图中展示了COMPOSITE模式的基本结构。图中是一个形状类层次结构。基类Shape有两个派生类:Circle和Square。第3个派生类时一个组合体。CompositeShape持有一个含有多个Shape实例的列表。当调用CompositeShape的draw()方法时,它就把这个方法委托给列表中的每一个Shape实例。
因此,对系统来说。一个CompositeShape实例就像是一个单一的Shape。可以把它传递给任何使用Shape的函数或者对象,并且它表现得就像是一个Shape。不过,实际上它只是一组Shape实例的代理。
完整内容请查看敏捷软件开发 - 原则、模式与实践系列