简介
可以使用它将对象组合成树状结构, 并且能像使用独立对象一样使用它们。
场景
类图

示例代码(伪代码)
以android view体系来说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| 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 } }
|
使用场景
可以将对象关系抽象为树状结构的时候,采用组合模式, 可通过一个入口递归遍历到所有的子节点,方便管理。