组合模式

来源:互联网 发布:出租屋装修知乎 编辑:程序博客网 时间:2024/05/17 06:15

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{@Overridepublic void responsibility() {System.out.println("我是运营部,我是公司的一部分");}}

/** * @Desc:销售部门 * @author zy * @date 2016年8月12日上午11:18:59 */public class SaleDepartment  extends Department{@Overridepublic void responsibility() {System.out.println("我是销售部,我是公司的一部分");}}
/** * @Desc:技术部 * @author zy * @date 2016年8月12日上午11:16:48 */public class TechnologyDepartment extends Department{@Overridepublic 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);}}


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

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








0 0
原创粉丝点击