理解设计模式(组合)

  组合模式,保证系统中相同类的组合对象和单一对象是一致的。

特定环境

若干对象树形架构,具有**整体——部分”层次结构

其中,操作任意若干对象的组合结构,如同操作单个对象

一类问题

整理和部分如何被一致的对待

解决方案

组合模式有3个角色:

  • 组件接口 Component :
    规范类行为,一般增删叶节点或组合节点,由接口或抽象类实现

  • 叶节点 Leaf :
    增删对该角色无效,实现Componet, 一般有具体子类实现

  • 组合节点 Composite :
    封装叶节点引用集,实现增删逻辑,实现Componet, 一般由具体子类实现

实例场景

文件系统,文件夹和文件的增删操作逻辑相同

公司人事架构,工资的发放等逻辑相同

等等

优劣

优点:

  • 一致地对待单个和组合对象,简化操作

  • 组合对象内随意增加对象,且不用修改源代码

缺点:

  • 不易统一处理单个或组合对象特有的业务逻辑

参考

Java组合模式, 作者 : Fred

Java设计模式之组合模式(Composite), 作者 : edison_cool911

posted @ 2015-11-21 21:42  coolsoul  阅读(232)  评论(0编辑  收藏  举报