依赖注入 – 我对使用IoC时的界面抽象感到困惑
发布时间:2020-12-14 00:47:35 所属栏目:百科 来源:网络整理
导读:我最近一直在尝试学习IoC,并根据以下代码提出了几个问题: public class WarriorModule : NinjectModule { public override void Load() { BindIWeapon().ToSword(); BindSamurai().ToSelf(); }} 我在抓住接口的新概念时遇到麻烦.在我创建一个接口如IRunnabl
我最近一直在尝试学习IoC,并根据以下代码提出了几个问题:
public class WarriorModule : NinjectModule { public override void Load() { Bind<IWeapon>().To<Sword>(); Bind<Samurai>().ToSelf(); } } 我在抓住接口的新概念时遇到麻烦.在我创建一个接口如IRunnable之前,实现函数void Run().使用IoC,我正在查看一个界面,只能映射到一个具体的类.假设我将如何将多个具体类映射到一个接口?我继续阅读,你可以将多个接口映射到一个具体的类,但不是相反的方法(除非这是上下文映射). 假设接口只映射到单个对象,何时应该创建一个接口,而不是使一个对象绑定到它自己?无论哪种方式,当映射更改正确时,您将不得不更改同一段代码 编辑:我标记了我做的答案,因为它帮助我个人.尽管如此,这两个意见都是同样的信息.
我最近
addressed this topic from a more general viewpoint.底线是松散耦合的代码有一个1:1接口过多的倾向.这与
Reused Abstractions Principle相反.
然而,这是一个更多的应用程序设计问题,而不是与特定的DI容器有关的问题.虽然我不知道Ninject,我曾经使用过的所有其他容器(Castle Windsor,StructureMap,Spring.NET,Autofac,Unity,甚至MEF)都可以将多个实现映射到同一个接口.他们如何做到这一点略有不同,但是我在my book的第四部分中涵盖了所有这些 – 不幸的是,这本书没有涵盖Ninject. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |