我正在研究依赖项注入,并且在整个地方都使用术语“组合根”。那是什么
Answers:
index.php
但听起来并不是一个拥有它的好地方。
马克·西曼(Mark Seemann)写了一篇很棒的文章,关于合成根设计模式。
本文的要点是:
组合根是应用程序中组合模块的(最好)唯一位置。
仅应用程序应具有合成根。库和框架不应该。
DI容器仅应从成分根引用。所有其他模块都不应引用该容器。
http://blog.ploeh.dk/2011/07/28/CompositionRoot/
考虑到这些原则,我编写了自己的JavaScript依赖注入框架Di-Ninja
https://github.com/di-ninja/di-ninja
据我所知,它是javascript中唯一实现Composition-Root设计模式的工具,它的文档可能是另一个演示其工作原理的好例子。
它可以与NodeJS,浏览器(与Webpack或UMD / AMD)和React-Native一起使用。