合成模式:
合成模式把部分和整体的关系用树结构表示出来合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等对待
抽象构件角色:
这是一个抽象角色它给参加组合的对象规定一个接口这个角色给出共有的接口及其默认行为
树叶构件角色:
代表参加组合的树叶对象一个树叶没有下级的子对象定义出参加组合的原始对象的行为
树枝构件角色:
代表参加组合的有子对象的对象并给出树枝构件对象的行为
合成模式:
安全模式
透明模式
安全模式
透明模式:
安全模式和透明模式:
透明模式合成类和树叶节点都统一实现Component 接口客户端可以同等对待编译不出错运行会出错
缺点是不够安全因为树叶类节点和合成类对象是有区别的树叶类是不可能有addremove 等操作
安全模式合成类和树叶类具有不同的实现因为树叶节点根本没有管理子类对象的方法
如果对树叶类使用这些方法时程序会在编译时期出错
缺点是不够透明合成类和树叶类都有不同的接口