readme
组合模式:
总:当存在多继承时,可以使用树形结构来进行管理操作
e.g.<br /> 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,<br /> 一个学校有多个学院, 一个学院有多个系<br /> 传统方式:<br /> 通过继承的方式来实现,以例子为基础=》就是学校为父类,学院为学校的子类,系为学院的子类组合模式:<br /> (1)把学校、院、系都看做是组织结构,他们之间没有继承的关系,而是一个树形结构,<br /> 可以更好的实现管理操作。 => 组合模式<br /> (2)coding:<br /> 1)管理抽象类,以便于后面使用多态<br /> 2)通过组合的方式,将其下级组合到当前类中:<br /> 如学校类中组合院类,院类中组合系类(这里可使用多态来完成,使用容器来管理类,最下级不需要管理别的类)<br /> 3)注意合细节:<br /> (1)简化客户端操作。客户端只需要面对一致的对象而不用考虑整体部分或者节点叶子的问题。<br /> (2)具有较强的扩展性。当我们要更改组合对象时,我们只需要调整内部的层次关系,客户端不用做出任何改动.<br /> (3)方便创建出复杂的层次结构。客户端不用理会组合里面的组成细节,容易添加节点或者叶子,从而创建出复杂的树形结构<br /> (4)需要遍历组织机构,或者处理的对象具有树形结构时, 非常适合使用组合模式.<br /> (5)要求较高的抽象性,如果节点和叶子有很多差异性的话,比如很多方法和属性都不一样,不适合使用组合模式【适用范围】
组合模式代码(以学校==》学院==》系之间的组合关系)
Client.javaCollege.javaDepartment.javaOrganizationComponent.javaUniversity.java
