首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用公共包装类的依赖注入库无关代码?

使用公共包装类的依赖注入库无关代码?
EN

Stack Overflow用户
提问于 2012-04-23 23:16:53
回答 1查看 221关注 0票数 0

是知道一组类来抽象出特定的依赖注入库(Spring、城堡、StructureMap、Ninject.) ?

我们都使用DI容器来抽象出代码的特定实现,但我们也可以使用相同的接口/策略模式来使用特定的实现(如Castle.Windsor、Unity)编写基于通用接口的DI容器.等。

一般来说,从容器中获取和对象的基本模式是相当普遍的。例如:

代码语言:javascript
复制
IService service = IocContainer.Get<IService>();

其中,IocContainer是围绕一个特定库实现(如Castle.Windsor、Unity)的通用包装类.等。

当然,除了编写可以“插入”的具体实现之外,每个实现都有自己的配置文件格式。

有人对DI容器的现有测试良好的包装器类有建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 23:39:49

所有这些包装器和容器抽象的问题是,它们将您限制在所有容器共享的功能的公共子集上。所以你才不应该这么做。相反,正确地使用您选择的容器:

  1. 在您的应用程序中只有一个"Get“--在组合根
  2. 中,使用约定配置容器,而不是一个接一个地进行服务注册。
  3. 使用工厂接口在应用程序的初始组合之后创建实例,并将它们实现为容器配置的一部分(某些容器为您自动完成此实现)

使用这些简单的规则,您的容器只在一个地方已知--组合根--这使得容器的任何抽象都过时了。这样你就可以充分利用容器的能量。

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

https://stackoverflow.com/questions/10289594

复制
相关文章

相似问题

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