组合模式是结构型模式中的一种,他通常可以用来实现类似树结构的功能。
就比如一副画,画由矩形,三角形组成,其中各个形状的颜色不同。这里画就好比跟节点(Tree Root), 各个形状就好比 Tree Leaf,而这些形状就是组成画的基本元素
通过上述比喻,不难推断出组合模式有以下对象组成
- Base Component 组合模式中所有对象需要实现的接口类
- Leaf 实现Base Component的类,且各个Leaf是互不相关的
- Composite 包含Leaf,同时也实现了Base Component
下面我们通过画画这个例子来实现组合模式
Base Component
接口类,提供颜色来表明Leaf 的颜色
Shape.java1
2
3
4
5
6package com.walterlife.dp.CompositeDP;
public interface Shape {
public void draw(String color);
public String getName();
}