什么是组合模式
“组合模式”也被称为“部分整体模式”该模式属于结构型模式的一种。
讲解该模式之前先带大家熟悉一下“树形结构”。相信大家对“树形结构”不会太陌生,如果你刚好不太了解的话可以想一下大树,一颗树它分别有树根、树枝、树叶,正好树形结构中也有根节点、子节点(非叶子节点)、叶子节点。
组合模式就运用了树形结构,该模式的核心思想是:将多个对象组合成树形结构,以此结构来表示“整体-部分”之间的层次关系。
组合模式UML类图
UML类图讲解:
1、Component:组合模式中的“根节点”,可以是接口、抽象类、普通类,该类中定义了其子类的所有共性内容,并且该类中还存在着用于访问和管理它子部件的方法。2、Leaf:组合中的叶子节点,也就是最末端的节点,该节点下不会再有子节点。3、Composite:非叶子节点,它的作用是存储子部件,并且在Composite中实现了对子部件的相关操作。
通过案例了解组合模式
案例:某公司老板需要开发一个人员和部门管理系统,要求是可以灵活的新增、删除、展示部门以及部门下的员工。此时我们就可以通过组合模式来实现。
组织构成 => 对应Component角色
公司 => 对应Composite角色
部门 => 对应Composite角色
员工 => 对应的是Leaf角色
客户端测试类
执行结果
总结
1、使用组合模式可以让用户可以使用统一的方式处理整个树形结构的个别对象和组合对象,从而简化客户端的操作。
2、组合模式具有较强的扩展性,当我们想要更改组合对象时,只需要调整内部的层次关系即可,客户端不需要作出任何改动。
3、客户端不用考虑组合中的细节,通过添加节点和叶子就可以创建出复杂的树形结构。
4、当需要处理的对象是树形结构时可以考虑使用组合模式。
5、节点和叶子节点存在很大差异的情况下不建议使用组合模式。
今天的分享就到这里了,如果感觉“菜鸟”写的文章还不错,记得点赞加关注呦!你们的支持就是我坚持下去的动力。文章哪里写的有问题的也希望大家可以指出,我会虚心受教。