11.组合模式
Posted Kyhoon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.组合模式相关的知识,希望对你有一定的参考价值。
组合模式主要应对的是当一个具体实现一个接口的类中,含有更多的该接口的实例的树形接口,当执行此接口的方法时怎样赋予其中的相同接口的方法实现
1.接口
public interface IBox { public void process(); }
2.实现接口的类
1)单一的类
public class SingleBox implements IBox { public void process() { // TODO Auto-generated method stub System.out.println("single box process"); } }
2.具有树形实现接口的类
public class ContainerBox implements IBox { List<IBox> list=new ArrayList<IBox>(); public ContainerBox(List<IBox> list){ this.list=list; } public void process() { // TODO Auto-generated method stub System.out.println("containerBox process");
//组合模式的关键,递归调用 if (null!=list && list.size()>0) { for(IBox item : list){ item.process(); } } } }
3.应用
public class App { public static void main(String[] args) { SingleBox box=new SingleBox(); List<IBox> list=new ArrayList<IBox>(); list.add(box); ContainerBox containerBox=new ContainerBox(list); //IBox box=Factory.getBox(); // 对客户程序来说,不需判断有无树形结构 containerBox.process(); } }
以上是关于11.组合模式的主要内容,如果未能解决你的问题,请参考以下文章