定义
也叫部分整体模式,将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问。
实现方式
透明方式-不区分有没有子节点,叫透明方式,最省事;
安全方式-就要区分节点性质,使用更安全,但是也麻烦;
主要解决
它在我们树形结构的问题种,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样处理复杂元素,从而使得客户端程序与复杂元素的内部结构解耦。
何时使用
像表示对象的部分-整体层次结构(属性结构);希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
如何解决
树枝和叶子实现统一接口,树枝内部组合该接口。
关键代码
树枝内部组合该结构,并且含有内部属性list,里面放Component。
优点
高层模块调用简单;节点自由增加。
缺点
在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖导致原则。
使用场景
树形菜单、树形文件的管理。