设计模式学习-组合模式(Composite)
意图: 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 结构: 参与者 Component(Graphic) 为组合中的对象声明接口。 在适当的情况下,实现所有类共有接口的缺省行为。 (可选)在递归结构中定义一个接口,用于访问一个父部件,并在合适的情况下实现它。 Leaf(Rectangle、Line、Text等) 在组合中表示叶节点对象,叶节点没有子节点。 在组合中定义图元对象的行为。 Composite(Picture) 定义有子部件的那些部件的行为。 存储子部件。 在Component接口中实现与子部件有关的操作。 Client 通过Component接口操纵组合部件的对象。 代码示例: Component public interface Component { public void operation(); public void add(Component item); void remove(Component item); public Component getChild(int i); } Composite public class Composite implements Component { private List<Component> children = new ArrayList<Component>(); @Override public void operation() { for (Component child : children) { child.operation(); } } @Override public void add(Component item) { this....