JavaScript设计模式样例十 —— 组合模式

Posted 东风杨柳岸,岁月如烟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript设计模式样例十 —— 组合模式相关的知识,希望对你有一定的参考价值。

组合模式(Composite Pattern)

定义:又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。
目的:将对象组合成树形结构以表示"部分-整体"的层次结构。
场景:您想表示对象的部分-整体层次结构(树形结构),如:文件系统。
// 指令
let directive = {
    eat: {
        excute: () => {
            console.log(‘eat‘)
        }
    },
    sleep: {
        excute: () => {
            console.log(‘sleep‘)
        }
    },
    code: {
        excute: () => {
            console.log(‘Get out there and write code!‘)
        }
    }
}

const callDirective = () => {
    let result = {
        directiveList: [],
        add: (directive) => {
            result.directiveList.push(directive)
        },
        excute: () => {
            for (let ele of result.directiveList.values()) {
                ele.excute()
            }
        }
    }
    return result
}

let command = callDirective()
command.add(directive.eat)
command.add(directive.sleep)
command.add(directive.code)
command.excute()

Git地址:https://github.com/skillnull/Design-Mode-Example

以上是关于JavaScript设计模式样例十 —— 组合模式的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript实现《大话设计模式》样例一 —— 工厂模式

JavaScript设计模式样例九 —— 桥接模式

JavaScript设计模式样例二十 —— 中介者模式

JavaScript设计模式与开发实践---读书笔记(10) 组合模式

Java中23种设计模式(附代码样例)

深入理解设计模式-组合模式