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

组合模式

时间:2016-08-12 18:26:38      阅读:174      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!