简介
可以使用它将对象组合成树状结构, 并且能像使用独立对象一样使用它们。
场景
- 公司职级架构
- AndroidView 架构
类图
示例代码(伪代码)
以android view体系来说明
public abstract class View {
void draw();
}
public class TextView extentds {
public void draw() {
System.out.print("im TextView");
}
}
public class ImageView {
public void draw() {
System.out.print("im ImageView");
}
}
public class ViewGroup extends View{
List<View> childViews;
public void addView(View v) { childViews.add(v)}
public void removeView(View v) { childViews.remove(v)}
public void draw {
for v : childs
c.draw
}
}
使用场景
可以将对象关系抽象为树状结构的时候,采用组合模式, 可通过一个入口递归遍历到所有的子节点,方便管理。