是否有一个模式的名称,您可以在其中构建模仿文件系统的依赖关系树?

时间:2017-03-28 21:12:15

标签: javascript node.js design-patterns architecture

当我用动态类型语言编写真正的大型库并希望在项目根目录附近聚合导出的功能时,我发现自己正在这样做。不必是Node / JS,但这是一个Node项目的示例文件系统......

src/
    index.js -- imports A/index.js and B/index.js
    A/
        index.js -- imports X/index.js
        X/
            index.js -- imports foo.js and bar.js
            foo.js
            bar.js
        Y/
            index.js -- imports snafu.js and whatever.js
            snafu.js
            whatever.js
    B/
        index.js -- imports alpha.js and omega.js
        alpha.js
        omega.js

..导出的库会模仿文件系统:

const {
    A: {
        X: {
            foo,
            bar
        },
        Y: {
            snafu,
            whatever
        }
    },
    B: {
        alpha,
        omega
    }
} = require('lib');

这种构建依赖关系树的方法有名称吗?

编辑:我理解最终的结果是一棵树,但如果我记录了如何贡献源代码,我不能只说“包括像树一样的模块”,因为那不是' t限定耦合到文件系统或如何在每个文件中构造导出。我正在寻找一个更具体的名称来捕获聚合的结构,以及构建它的方式,而不必每次为每个项目解释它。

1 个答案:

答案 0 :(得分:1)

考虑Composite模式。

将对象组合成树结构以表示部分整体层次结构。对象组的处理方式与对象的单个实例相同。

使用Composite的文件系统示例。