首页 > 其他 > 详细

11.组合模式

时间:2017-09-03 12:47:44      阅读:263      评论:0      收藏:0      [点我收藏+]

组合模式主要应对的是当一个具体实现一个接口的类中,含有更多的该接口的实例的树形接口,当执行此接口的方法时怎样赋予其中的相同接口的方法实现

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.组合模式

原文:http://www.cnblogs.com/Niel-3/p/7469228.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!