什么是组合模式?
组合模式挺简单的,就是把一些对象组装成一个树状结构。但是要求用户使用单一对象和使用组合对象要具有一致性。
实现一个组合模式
interface Composite {
public void add(Composite cp);
public void delete(Composite cp);
public void each();
}
class Compositor implements Composite {
private ArrayList<Composite> list = new ArrayList<Composite>();
@Override
public void add(Composite cp) {
// TODO Auto-generated method stub
list.add(cp);
}
@Override
public void delete(Composite cp) {
// TODO Auto-generated method stub
list.remove(cp);
}
@Override
public void each() {
// TODO Auto-generated method stub
for(Composite cp : list) {
cp.each();
}
}
}
class Leaf implements Composite {
@Override
public void add(Composite cp) {
// TODO Auto-generated method stub
System.out.println("叶子不能添加");
}
@Override
public void delete(Composite cp) {
// TODO Auto-generated method stub
System.out.println("叶子不能删除");
}
@Override
public void each() {
// TODO Auto-generated method stub
System.out.println("I'm leaf");
}
}