2010-04-23 31 views
0

Q1如果我有一个可用的可重用库,它使用接口和使用getInstance概念创建具体类以供您使用的类,那么在这种情况下,在客户端使用IOC容器来创建这些类的实例是否有意义?还是真的应用了双层抽象?如果我自己构建可重用的库并希望客户端使用IOC容器的情况下,那么在我的可重用库中,我将免除任何有工厂或“getInstance”方法实例化的开销客户端中的类? (即IOC容器不会这样做?)我可以在使用第三方库时使用IOC

回答

1

Q1。 getInstance你正在谈论服务定位器的声音,而不是依赖注入。如果是这样的话,那么是的,我会把它包装在我选择的IoC容器中。 Q2302。请参阅Dependency Inject (DI) "friendly" library

+0

因此,如果我假设用户将使用IOC容器,那么将没有工厂需要正确吗?因此,图书馆工作的客户端应用程序,然后需要有一个使用构造器注入正确的IOC容器?但是,它配置的IOC具体方式是什么?图书馆不会有一些IOC容器特定的配置将类连接在一起吗?例如Ninject。或者,在图书馆安装一个单独的IOC容器是否会更好,因为它是自给自足的(不完全确定这将如何工作)? – Greg 2010-04-24 02:02:21

+0

您需要为您想要支持的每个容器提供一个“适配器”。例如。 Windsor设施,StructureMap注册表,Ninject模块等。 – 2010-04-24 15:49:16

相关问题