定义
将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
使用场景
表示对象的部分-整体层次结构。
Java 代码示例
// 抽象根节点
public abstract class Component {
protected String mName;
public Component(String name) {
mName = name;
}
public abstract void doSomething();
}
// 枝干节点
public class Composite extends Component {
private List<Component> mComponents = new ArrayList<>();
public Composite(String name) {
super(name);
}
@Override
public void doSomething() {
if (mComponents != null) {
for (Component component : mComponents) {
component.doSomething();
}
}
}
public void addChild(Component component) {
mComponents.add(component);
}
public void removeChild(Component component) {
mComponents.remove(component);
}
public Component getChild(int index) {
return mComponents.get(index);
}
}
// 叶子节点
public class Leaf extends Component {
public Leaf(String name) {
super(name);
}
@Override
public void doSomething() {
}
}