依赖注入 – 我对使用IoC时的界面抽象感到困惑

前端之家收集整理的这篇文章主要介绍了依赖注入 – 我对使用IoC时的界面抽象感到困惑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近一直在尝试学习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.

原文链接:https://www.f2er.com/javaschema/281825.html

猜你在找的设计模式相关文章