首页 > 其他 > 详细

组合模式

时间:2016-08-12 18:25:46      阅读:215      评论:0      收藏:0      [点我收藏+]

1.公司和部门的抽象类

/**
 * @Desc:部门的基类
 * @author zy
 * @date 2016年8月12日上午11:11:39
 */
public abstract class Department {
	public abstract void responsibility();//公司的职责
}
/**
 * @Desc:公司的实体
 * @author zy
 * @date 2016年8月12日上午11:07:28
 */
public class Company {
	
	public Company(Department technologyDepartment,Department operationDepartment,Department saleDepartment){
		if(null != technologyDepartment){
			System.out.println("技术部组合成功");
		}
		if(null != operationDepartment){
			System.out.println("运营部组合成功");
		}
		if(null != saleDepartment){
			System.out.println("销售部组合成功");
		}
		
		System.out.println("公司初始化成功");
	}
	
}


2.部门的具体实现

/**
 * @Desc:运营部门
 * @author zy
 * @date 2016年8月12日上午11:17:50
 */
public class OperationDepartment extends Department{

	@Override
	public void responsibility() {
		System.out.println("我是运营部,我是公司的一部分");
	}

}

/**
 * @Desc:销售部门
 * @author zy
 * @date 2016年8月12日上午11:18:59
 */
public class SaleDepartment  extends Department{

	@Override
	public void responsibility() {
		System.out.println("我是销售部,我是公司的一部分");
	}
	
}
/**
 * @Desc:技术部
 * @author zy
 * @date 2016年8月12日上午11:16:48
 */
public class TechnologyDepartment extends Department{

	@Override
	public void responsibility() {
		System.out.println("我是技术部,我是公司的一部分");
	}
	
}


3.测试

public class M {
	public static void main(String[] args) {
		Department technologyDepartment = new TechnologyDepartment();
		Department operationDepartment = new OperationDepartment();
		Department saleDepartment = new SaleDepartment();
		
		Company company = new Company(technologyDepartment, operationDepartment, saleDepartment);
		
	}
}

技术分享


组合模式,阐述这个模式最好的栗子,就是公司的组成。从大的角度划分的话,每个公司都能理解为 技术+销售+运营的构成体

使用组合模式,比使用继承的方式更加轻巧和灵活,减少了使用继承的高耦合








组合模式

原文:http://blog.csdn.net/zy_281870667/article/details/52190240

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