Design Patterns 结构模式 之 Composite 模式
Design Patterns 结构模式 之 Composite 模式
组合模式:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.
1),安全式
2),透明式
组合(Composite)模式主要角色:
1.Component角色
2.Leaf角色
3.Composite角色
/** * 组件抽象角色 */ public interface Component { public void run(); }
/** * 叶子角色 */ public class Leaf implements Component{ public void run(){ System.out.println(" run invoked..."); } }
public class Composite implements Component{ List<Component> list = new ArrayList<Component>(); //添加 public void addComponent(Component component){ list.add(component); } //删除 public void removeComponent(Component component){ list.remove(component); } //get public List<Component> getAll(){ return list; } public void run(){ for(Component component : list){ component.run(); } } }
public class Client { public static void main(String[] args){ Leaf leaf1 = new Leaf(); Leaf leaf2 = new Leaf(); Leaf leaf3 = new Leaf(); Composite composite = new Composite(); composite.addComponent(leaf1); composite.addComponent(leaf2); Composite composite1 = new Composite(); composite1.addComponent(composite); composite1.addComponent(leaf3); composite1.run(); } }