1.从给定的树形问题中找出简单元素和复杂元素,并对他们抽象,然后绘制他们的类图
2.由客户端运用类图中的类组建出一个树形
注意加入结点的顺序和层次,类似于数据结构当中的树形图
优点:缺点:组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码;
更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满足“开闭原则”;
代码:设计较复杂,客户端需要花更多时间理清类之间的层次关系;
不容易限制容器中的构件;
不容易用继承的方法来增加构件的新功能;
interface Component{ public void display(); public void add(Component c); public void remove(Component c); } class Leaf implements Component{ String name; Leaf(String name){ this.name=name; } public void display() { System.out.println(name); } public void add(Component c) {} public void remove(Component c) {} } class Composite implements Component{ String name; Composite(String name){ this.name=name; } ArrayListlist=new ArrayList (); public void display() { System.out.println(name); for(int i=0;i 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)