美文网首页
组合模式

组合模式

作者: 要学的东西太多了 | 来源:发表于2018-10-31 11:25 被阅读0次

组合模式用于部分-整体的情况,如树状结构或文件目录式的结构,属于对象包含对象,适用于客户不需要关心整体组合对象和单个对象的不同,统一使用组合结构中的所有对象。通常组合对象持有一个子节点对象集合,且真正实现了操作集合的方法,子节点则不需要真正实现操作集合的方法,比如公司内部,公司老总管若干部门,每个部门老大管若干小组,每个小组组长管若干组员,老大发个通知,通知各个部门老大,再通知各个小组长,再通知各自组员。
示例:

public class Combination {
    public static void main(String[] args){
        Combination combination=new Combination();
        Man man=combination.new Man("");
        Man normalMan = combination.new Man("正常");
        Boy xiaoMing = combination.new Boy("小明");
        Boy xiaoLi = combination.new Boy("小李");
        Boy xiaoZhang = combination.new Boy("小张");
        normalMan.add(xiaoMing);
        normalMan.add(xiaoLi);
        normalMan.add(xiaoZhang);
        Man unNormalMan = combination.new Man("不正常");
        Boy xiaoHuang = combination.new Boy("小黄");
        unNormalMan.add(xiaoHuang);
        man.add(normalMan);
        man.add(unNormalMan);
        man.notify();
    }
    interface Person{
        void notify();
        void add(Person person);
    }

    class Man implements Person{
        private String type;

        public Man(String type) {
            this.type = type;
        }

        private List<Person> personList = new ArrayList<>();
        @Override
        public void notify() {
            System.out.println(type+"男人收到通知");
            for(Person p:personList){
                p.notify();
            }
        }

        @Override
        public void add(Person person) {
            personList.add(person);
        }
    }

    class Boy implements Person{
        private String name;

        public Boy(String name) {
            this.name = name;
        }

        @Override
        public void notify() {
            System.out.println("小男孩 "+name+" ,收到通知");
        }

        @Override
        public void add(Person person) {

        }
    }
}

相关文章

  • 设计模式:组合模式 职责链模式

    组合模式 职责链模式 组合模式 组合模式将对象组合成树形结构,以表示“部分-整体”的层次结构。 在组合模式的树形结...

  • 第4章 结构型模式-组合模式

    一、组合模式简介 二、组合模式的优缺点 三、组合模式的使用场景 、组合模式的实例

  • 组合模式(统一叶子与组合对象)

    目录 从生活场景出发,映射组合模式 组合模式的理论概念 组合模式的实现 组合模式在源码中的应用 组合 “优于” 继...

  • 组合模式

    1. 组合模式 1.1 组合模式的定义 组合模式(Composite): 又称部分-整体模式, 将对象组合成树形结...

  • 组合模式

    设计模式系列7--组合模式 《Objective-c 编程之道 iOS 设计模式解析》 - 组合模式 常见组合模式...

  • 设计模式 | 组合模式及典型应用

    本文的主要内容: 介绍组合模式 示例 组合模式总结 源码分析组合模式的典型应用java.awt中的组合模式Java...

  • 组合模式

    一、组合模式介绍 二、组合模式代码实例

  • 组合模式

    设计模式之组合模式 什么是组合模式? 组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以...

  • 15、组合模式(Composite Pattern)

    1. 组合模式 1.1 简介   Composite模式,即组合模式,又叫部分整体模式。Composite模式将对...

  • 组合模式原型解析

    组合模式定义: 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象...

网友评论

      本文标题:组合模式

      本文链接:https://www.haomeiwen.com/subject/brnotqtx.html