组合模式

组合模式

定义

  • 对组合执行操作如同对其中的每一个元素进行操作
  • 引申
    • 组合与元素实现相同的操作接口

适用场景

  • 可以用树形结构抽象的业务场景,元素表示叶节点,组合对象表示非叶节点
    • 如:公司组织架构
    • 操作系统文件目录组织结构
  • 元素对象和组合对象具有相同的对外接口
    • 因此用户不知道他操作的组合对象还是元素对象

使用方式

这里写图片描述

interface Action {
    void doA();
}

class AComposite implements Action {
    // elements集合中即包含组合对象,也包含元素对象
    private Collection<Action> elements;

    @Override
    public void doA() {
        // 对于组合对象,递归实现doA
        elements.forEach(ele->doA());
    }
}

class ActionImpl implements Action {
    @Override
    public void doA() {
        ......
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章