ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

设计模式:组合模式(Composite Pattern)

设计模式:组合模式(Composite Pattern) import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; /** * 组合模式。 * author Bright Lee */ public class CompositePattern { public static void main(String[] args) { Component root new Composite(); Component leaf new Leaf(); root.add(leaf); root.operation(); } } /** * Component为组合中的所有对象定义一个接口不管是组合还是叶节点。 */ interface Component { void operation(); void add(Component component); void remove(Component component); ListComponent getChildren(); } /** * 组合。 */ class Composite implements Component { private LinkedHashMapComponent, Component childrenMap new LinkedHashMapComponent, Component(); public void operation() { System.out.println(我是一个Composite我的子节点是); ListComponent children getChildren(); for (Component child : children) { child.operation(); } } public void add(Component component) { childrenMap.put(component, component); } public void remove(Component component) { childrenMap.remove(component); } public ListComponent getChildren() { ListComponent list new ArrayListComponent(childrenMap.values()); return list; } } /** * 叶子节点。 */ class Leaf implements Component { public void operation() { System.out.println(我是一个Leaf。); } public void add(Component component) { } public void remove(Component component) { } public ListComponent getChildren() { ListComponent list new ArrayListComponent(0); return list; } }运行结果我是一个Composite我的子节点是我是一个Leaf。青蛙客服系统https://download.csdn.net/download/look4liming/93326820
返回列表