1.组合模式有时候又叫做部分-整体模式,是研究树形结构的问题,它可以使客户端将树枝节点(符合元素,有子元素)和叶子节点(没有子元素)一样看待,减化了不同类型节点的差异性和复杂性。
2.使得用户对单个对象和组合对象的使用具有一致性。
3.两种分类
透明方式
树枝节点和叶子节点都覆写了基类的方法
优点:所有的构件类都有相同的接口,叶子节点对象与树枝节点对象的区别起码在接口层次上消失了,对客户端是透明的。
缺点:不够安全,当叶子节点的方法在客户端调用运行时会出错,这样就要在叶子节点的方法里捕获这类错误。
安全方式
树枝节点特有的方法下移至树枝节点内部实现,这样叶子节点就不需要实现这些对它自己毫无意义的方法
优点:安全,客户端调用在编译时就出错,不会等到运行时。
缺点:不够透明,因为树枝节点和叶子节点将具有不同的接口。
4..net中的运用
ObjectBuilder的程序集中一个叫定位器的东西。