组合模式
# 概念
将对象组合成树形结构以表示 **“部分 - 整体”** 的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
# 使用场景
- 维护和展示部分 - 整体关系的场景,如树形菜单、文件和文件夹管理。
- 从一个整体中能够独立出部分模块或功能的场景。
- 只要是树形结构,就考虑使用组合模式。
# 结构
Component 抽象构件角色:定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性。
Leaf 叶子构件:叶子对象,其下再也没有其他的分支,也就是遍历的最小单位。
Composite 树枝构件:树枝对象,它的作用是组合树枝节点和叶子节点形成一个树形结构。
# 代码示例
public class Composite extends Component {
//构件容器
private ArrayList<Component> componentArrayList = new
ArrayList<Component>();
//增加一个叶子构件或树枝构件
public void add(Component component){
this.componentArrayList.add(component);
}
//删除一个叶子构件或树枝构件
public void remove(Component component){
this.componentArrayList.remove(component);
}
//获得分支下的所有叶子构件和树枝构件
public ArrayList<Component> getChildren(){
return this.componentArrayList;
}
}
上次更新: 2022/12/31, 03:04:26