设计模式之组合模式

来源:互联网 发布:yy静态头像psd源码 编辑:程序博客网 时间:2024/06/03 16:30

这里写图片描述
组合模式(又为“部分-整体”模式)屏蔽了容器对象与单个对象在使用时的差异,为客户端提供了统一的操作接口,从而降低客户代码与被调用对象的耦合关系,方便系统的维护扩展。
如上图,声明一个叶子节点对象,或者一个集合,都可以用

Component myObj = new Component ();

来声明,你可以把myObj当成一个叶子节点用,也可以在当成一个集合使用,在对象中创建一个List(),通过add()添加新的Component。

当面对一个树形结构的时候,可以考虑是否使用组合模式。定义一个共有接口,让组合对象和单个对象都去实现这个接口。如果面对单个对象,就调用单个对象的方法,如果面对组合对象,递归遍历之,依次调用每个对象的方法。

简单地来说,组合模式就是让客户可以通过接口统一的使用组合结构和单个对象

其中透明方式即在接口中生命方法,安全方式是在Composite声明左右管理子类对象的方法。由于不透明,组合对象和单个对象将不具有相同的接口。

原创粉丝点击