组合模式

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);
		
	}
}

 

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

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

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值