java设计模式_组合模式
2014-09-28 00:00
169 查看
摘要: 组合模式,将对象组合成树型结构以表示"部分-整体"的层次结构,使客户端对单个对象和组合对象具有一致性。
/** * */ package com.wangbiao.design.composite; import java.util.ArrayList; import java.util.List; /** * @Title: Component.java * @Package com.wangbiao.design.composite * @Description: TODO * @author wangbiao * @date 2014-9-28 上午9:50:26 * @version V1.0 */ public abstract class Component { String name = null; public Component(String name) { this.name = name; } public abstract void add(Component component); public abstract void remove(Component component); public abstract void display(); } class Reaf extends Component{ public Reaf(String name) { super(name); } @Override public void add(Component component) { // not applicable for Reaf System.out.println("Not applicable for Reaf"); } @Override public void remove(Component component) { // not applicable for Reaf System.out.println("Not applicable for Reaf"); } @Override public void display() { System.out.println("Reaf: "+ name); } } class Composite extends Component{ private List<Component> list = new ArrayList<Component>(); public Composite(String name) { super(name); } @Override public void add(Component component) { list.add(component); } @Override public void remove(Component component) { list.remove(component); } @Override public void display() { for (Component component : list) { if(component instanceof Composite){ System.out.println("xxxxxxxxxxxxxxCompositexxxxxxxxxxxxxx : "+component.name); }else{ System.out.println("xxxxxxxxxxxxxxReafxxxxxxxxxxxxxx : "+component.name); } component.display(); } } } /** * */ package com.wangbiao.design.composite; /** * @Title: Client.java * @Package com.wangbiao.design.composite * @Description: TODO * @author wangbiao * @date 2014-9-28 上午10:04:16 * @version V1.0 */ public class Client { /** * @param args */ public static void main(String[] args) { Component component_one = new Composite("Compositexxxxxxxx"); component_one.add(new Reaf("reaf_one")); component_one.add(new Reaf("reaf_two")); Component component_two = new Composite("xxxxxxxxComposite"); component_two.add(new Reaf("reaf_three")); component_two.add(new Reaf("reaf_four")); component_one.add(component_two); component_one.display(); } /* * result xxxxxxxxxxxxxxReafxxxxxxxxxxxxxx : reaf_one Reaf: reaf_one xxxxxxxxxxxxxxReafxxxxxxxxxxxxxx : reaf_two Reaf: reaf_two xxxxxxxxxxxxxxCompositexxxxxxxxxxxxxx : xxxxxxxxComposite xxxxxxxxxxxxxxReafxxxxxxxxxxxxxx : reaf_three Reaf: reaf_three xxxxxxxxxxxxxxReafxxxxxxxxxxxxxx : reaf_four Reaf: reaf_four */ }
相关文章推荐
- java 设计模式之: 组合模式(Composite)---1 【转】
- Java与设计模式-组合模式
- java设计模式——组合模式
- java设计模式之组合模式
- 设计模式之组合模式java实现
- Java与设计模式-组合模式
- JAVA设计模式之组合模式
- 设计模式--结构模式--组合模式--Java
- Java设计模式十六:组合模式(Composite Pattern)
- Java设计模式之十四(组合模式)
- Java设计模式(五)Facade(外观),Composite(组合),Decorator(油漆工)
- java 设计模式学习笔记八 composite组合模式
- JAVA设计模式:组合(Composite)
- java设计模式之组合模式
- java设计模式之组合模式
- java设计模式之 Composite(组合)
- Java设计模式——组合模式
- java 设计模式学习笔记八 composite组合模式
- 设计模式之组合模式java实现
- Java设计模式之迭代器模式和组合模式