组合模式:可以使用统一结构一直组合下去
总公司
---分公司1
---分公司1财务部
---分公司1人事部
---分公司2
---分公司2财务部
---分公司2人事部
import java.util.ArrayList;
import java.util.List;
/**
* 组合模式:
* 关键:
* Component组件接口,定义add和remove方法提供增加或移除树叶或树枝的功能
* Composite类,实现Component组件接口,定义枝节点行为,存储子部件
* Leaf类,实现Component组件接口,定义叶子结点行为,没有子部件
* @author zbl
*
*/
public class ComponentCustomer {
public static void main(String[] args) {
Composite composite = new Composite();
Leaf leaf = new Leaf();
composite.add(leaf);
}
}
interface MyComponent{
public void add(MyComponent c);
public void remove(MyComponent c);
}
class Composite implements MyComponent{
private List<MyComponent> list = new ArrayList<MyComponent>();//保存子部件
@Override
public void add(MyComponent c) {
list.add(c);
}
@Override
public void remove(MyComponent c) {
list.remove(c);
}
}
class Leaf implements MyComponent{
@Override
public void add(MyComponent c) {
}
@Override
public void remove(MyComponent c) {
}
}