javascript - 构建模仿文件系统的依赖树的模式是否有一个名称?

标签 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');

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

编辑:我知道最终结果是一棵树,但是如果我记录如何为源代码做出贡献,我不能只是说“包含像树一样的模块”,因为这并不'限制与文件系统的耦合或如何在每个文件中构造导出。我正在寻找一个更具体的名称,它可以捕获聚合的结构以及构建它的方式,而不必每次都为每个项目进行解释。

最佳答案

考虑Composite模式。

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

使用 Composite 的文件系统示例.

关于javascript - 构建模仿文件系统的依赖树的模式是否有一个名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43080055/

相关文章:

javascript - CIDR 到 javascript 中的网络掩码转换

javascript - jQuery UI Draggable - 拖动时需要修改元素

node.js - 当我从另一个 Controller 调用它时,在执行 mongodb save 之前,exports 返回 null?

node.js - 无法使用选项 'outFile' 编译模块,除非 '--module' 标志为 'amd' 或 'system'

hibernate - 通用 DAO 模式实现设计

javascript - 在 JavaScript 中引用具有数值的对象属性

javascript - 执行动态注入(inject)的 <SCRIPT> 在 Firefox (47.0) 上不起作用

javascript - 替换所有以冒号开头的字符串,例如快速路由路径

swift - 在 MVC 应用程序设计中收集用户输入选择的最佳/推荐方法是什么?

Javascript接口(interface)/松耦合