Composite 组合模式

来源:互联网 发布:我国2016车祸死亡数据 编辑:程序博客网 时间:2024/05/20 06:55
package com.lonton.designpatterns;import java.util.ArrayList;interface Component{public void show();}class Composite implements Component{ArrayList<Component> childComponents = new ArrayList<Component>();public void add(Component component){childComponents.add(component);}public void remove(Component component){childComponents.remove(component);}@Overridepublic void show(){// TODO Auto-generated method stubfor (Component component : childComponents){component.show();}}}class Leaf implements Component{String name;public Leaf(String name){this.name = name;}@Overridepublic void show(){// TODO Auto-generated method stubSystem.out.println(name);}}public class CompositeTest{public static void main(String[] args){Leaf leaf1 = new Leaf("Leaf 1");Leaf leaf2 = new Leaf("Leaf 2");Leaf leaf3 = new Leaf("Leaf 3");Leaf leaf4 = new Leaf("Leaf 4");Leaf leaf5 = new Leaf("Leaf 5");Composite composite1 = new Composite();composite1.add(leaf1);composite1.add(leaf2);Composite composite2 = new Composite();composite2.add(leaf3);composite2.add(leaf4);composite2.add(leaf5);composite1.add(composite2);composite1.show();}}

0 0