首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NPM包中的IOC容器

问NPM包中的IOC容器
EN

Stack Overflow用户
提问于 2021-06-30 18:56:37
回答 1查看 35关注 0票数 0

在我们公司,我们有内部SDK,有时在这些SDK中使用inversify可能会很方便。

然而,我发现在不同的包之间管理所有这些IOC容器变得很困难。例如,如果包A依赖于包B,那么您需要合并这两个包的容器,然后应用程序C将导入包B& A,然后它必须再次合并所有这些容器。

因此,如果在SDK中使用IOC容器是一种好方法,我会试着想一想。我个人从未见过SDK提供IOC容器。

对此有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 07:55:45

经过深思熟虑后,以下是我对在SDK中使用IOC容器的想法。

  1. 它将SDK与IOC容器的实现结合在一起,这使得在不使用特定容器的项目中重用这个sdk变得非常困难。

  1. 那么我们如何在没有IOC容器的情况下实现DI/IOC呢?当我们想到SDK时,我们应该想到:

  • 我们应该向外部世界提供什么样的
  • 哪些功能可以是可定制的(是的,并非所有内部组件都应该是cutomizable

如果我们在SDK内部使用IOC容器,然后将ioc容器提供给外部世界,那么我们就是在某种程度上剥离了所有内部组件,从而违反了封装。

我认为在没有IOC容器的SDK中为子类提供实现是完全正常的,如果我们希望允许外部世界自定义该实现,那么我们提供的公共API应该允许这种定制。

现在,当我查看这些镜头时,我认为IOC容器不应该在SDK中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68193460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档