设为首页 加入收藏

TOP

11.组合模式
2017-10-10 12:34:49 】 浏览:578
Tags: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();
	}
}

  

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇10.迭代器模式 下一篇Linux系统运维与架构设计

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目