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