标签:使用场景 分享图片 .com block 管理 其他 ima void ati
组合模式也叫合成模式,用来描述部分与整体的关系。
定义:
组合模式类图如下所示。
组合模式提供以下3个角色:
Component.java
// 定义抽象构件接口 public interface Component { public void operation(); }
Composite.java
// 定义树枝构件 public class Composite implements Component { // 构件容器 private ArrayList<Component> componentList = new ArrayList<Component>(); // 添加构件 public void add(Component component) { this.componentList.add(component); } // 删除构件 public void remove(Component component) { this.componentList.remove(component); } // 获取子构件 public ArrayList<Component> getChild() { return this.componentList; } @Override public void operation() { System.out.println("业务逻辑代码"); } }
Leaf.java
// 定义叶子结构 public class Leaf implements Component { @Override public void operation() { System.out.println("业务逻辑代码Leaf"); } }
Client.java
public class Client { public static void main(String[] args) { // 创建根节点 Composite root = new Composite(); // 创建树枝节点 Composite branch = new Composite(); // 创建叶子节点 Leaf leaf = new Leaf(); root.add(branch); branch.add(leaf); display(root); } // 遍历树递归 public static void display(Composite root) { for (Component c : root.getChild()) { if (c instanceof Leaf) { // 如果节点类型是叶子节点 c.operation(); } else { // 树枝节点 c.operation(); display((Composite) c); } } } }
优点:
缺点:
使用场景:
摘自:
青岛东合信息技术有限公司 . 设计模式(Java版) . 电子工业出版社,2012,86-89.
标签:使用场景 分享图片 .com block 管理 其他 ima void ati
原文地址:https://www.cnblogs.com/yewen1234/p/10080189.html