加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖注入 – 我对使用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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读