组合模式(Composite):将对象组合成树形结构以表示“部分--整体”的层次结构。
组合模式使得用户对单个对象和组合对象的使用具有一致性
下面是类结构图:
下面是源代码:
Component.java
package com.china_chenglong;
public abstract class Component {
protected String name;
public Component(String name){
this.name = name;
}
public abstract void Add(Component c);
public abstract void Remove(Component c);
public abstract void Display(int dept);
}
Composite.java
package com.china_chenglong;
import java.util.*;
public class Composite extends Component {
private List<Component> list = new ArrayList<Component>();
public Composite(String name){
super(name);
}
public void Add(Component c) {
list.add(c);
}
public void Display(int dept) {
String str = "";
for(int i=0;i<dept;i++){
str+="-";
}
System.out.println(str+this.name);
for(int i=0;i<list.size();i++){
list.get(i).Display(dept+2);
}
}
public void Remove(Component c) {
list.remove(c);
}
}