1.定义#
将对象组合成树形结构以表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性。本质为用对象的方法构建一棵树。
2.类图#
3.实现#
3.1抽象构件##
public abstract class Component {
public void doSomething() {
//公共的业务逻辑
}
}
3.2树枝构件##
public class Composite extends Component {
private ArrayList<Component> subTree = new ArrayList<Component>();
public void add(Component component) {
this.subTree.add(component);
}
public int remove(Component component) {
try {
this.subTree.remove(component);
} catch (Exception e) {
return 1;
}
return 0;
}
public ArrayList<Component> getSubTree() {
return this.subTree;
}
}
3.3叶子节点##
public class Leaf extends Component {
/*
@override
public void doSomething() {
}*/
}