读书人

设计形式之组合(composite)

发布时间: 2012-10-28 09:54:44 作者: rapoo

设计模式之组合(composite)

将对象组合成树形结构以表示“部分与整体”的层次结构。

?

public class CompositePattern {abstract class Component{abstract void add(Component c);abstract void remove(Component c);abstract void display();}class Leaf extends Component{private String Content;public Leaf(String content){this.Content = content;}@Overridevoid add(Component c) {}@Overridevoid display() {  System.out.println(this.Content);}@Overridevoid remove(Component c) {}}class Composite extends Component{private List<Component> list = new ArrayList<Component>();public Composite(){}@Overridevoid add(Component c) {list.add(c);}@Overridevoid display() {for(Component c : list){c.display();}}@Overridevoid remove(Component c) {if(list.contains(c)){list.remove(c);}}}public static void main(String[] args){CompositePattern cp = new CompositePattern();Component c2 = cp.new Composite();Component leaf21 = cp.new Leaf("leaf21");Component leaf22 = cp.new Leaf("leaf22");c2.add(leaf21);c2.add(leaf22);Component c23 = cp.new Composite();Component leaf231 = cp.new Leaf("leaf231");Component leaf232 = cp.new Leaf("leaf232");c23.add(leaf231);c23.add(leaf232);//对单个对象leaf与组整体对象composite在使用上具有一至性c2.add(c23);//递归输出c2.display();}}

读书人网 >操作系统

热点推荐