标签:
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("我是技术部,我是公司的一部分"); } }
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