码迷,mamicode.com
首页 > 其他好文 > 详细

11.组合模式

时间:2017-09-03 13:15:53      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:int   str   ted   递归调用   lis   generate   判断   string   oid   

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

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

标签:int   str   ted   递归调用   lis   generate   判断   string   oid   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!