zoukankan      html  css  js  c++  java
  • 设计模式开始--组合模式

    组合模式

    一、作用

    需求是体现部分与整体的关系时,完成的功能就是基础的对象可以组成成更加复杂的对象,而这个组合的对象又可以进一步的组合,不断的迭代,便可以体现出层次的结构

    二、类图(核心在于有一个之类有一个向上的引用)

    三、实现

    (1)Company定义结构

    public abstract class Company {
        protected String name;
        public Company(String name)
        {
            this.name = name;
        }
        public Company(){}
        public abstract void add(Company company);
        public abstract void remove(Company company);
        public abstract void display();
    }
    View Code

    (2)具体Company实现类

    public class HRCompany extends Company {
        public HRCompany(String name)
        {
            this.name = name;
        }
        @Override
        public void add(Company company) {
        }
        @Override
        public void remove(Company company) {
        }
        @Override
        public void display() {
            System.out.println(name);
        }
    }
    public class BeiJCompany extends Company {
        private List<Company> list = new ArrayList<Company>();
        public BeiJCompany(String name)
        {
            this.name = name;
        }
        @Override
        public void add(Company company) {
            list.add(company);
        }
        @Override
        public void remove(Company company) {
            list.remove(company);
        }
        @Override
        public void display() {
            System.out.println(name);
            for(Company company: list)
            {
                System.out.print("	");
                company.display();
            }
        }
    }
    View Code

    (3)Client测试类

    public class Client {
        public static void main(String[] args)
        {
            Company root = new HRCompany("总部HR");
            Company beijingHr = new HRCompany("北京总部HR");
            Company beijing = new BeiJCompany("北京分部");
            beijing.add(beijingHr);
            root.display();
            beijing.display();
        }
    }
    View Code
  • 相关阅读:
    SpringBoot第五篇:整合Mybatis
    SpringBoot第四篇:整合JDBCTemplate
    SpringBoot第三篇:配置文件详解二
    分享一篇去年的项目总结
    Oracle生成多表触发器sql
    Oracle 设置用户密码永不过期
    Oracle建表提示SQL 错误: ORA-00904: : 标识符无效
    MySql数据备份
    ETL全量多表同步简述
    ETL全量单表同步简述
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4384106.html
Copyright © 2011-2022 走看看