我一直在阅读关于控制框架的反转,我只是在玩这个问题:"为什么我到底需要一个框架才能做到这一点?"
不要误解我的问题......这种模式是我们程序员经常使用的东西,但是...这是一个全功能的框架吗?
我必须遗漏一些东西,这就是我发布问题的原因.我在网上看到了很多例子,我只是不明白.mi心灵可能被封锁了.
只需看看Ninject主页的示例:
public class Samurai {
public IWeapon Weapon { get; private set; }
public Samurai(IWeapon weapon) {
Weapon = weapon;
}
}
public class WarriorModule : NinjectModule {
public override void Load() {
Bind< IWeapon >.To< Sword >();
}
}
Run Code Online (Sandbox Code Playgroud)
"Samurai"课对我来说没问题."NinjectModule"框架对我来说似乎没用.
我在代码中稍后假设我们将创建新的"Samurai"实例,并将"Sword"实例传递给它,例如:
Samurai theWarrior = new Samurai(WarriorModule.GetInstance(IWeapon));//no coupling
Run Code Online (Sandbox Code Playgroud)
可以替换为:
Samurai theWarrior = new Samurai(new Sword());//still no coupling
Run Code Online (Sandbox Code Playgroud)
要么
Samurai theWarrior = new Samurai(GetWeaponFromXML());//no coupling yet
Run Code Online (Sandbox Code Playgroud)
我错过了什么部分?您能否介绍一下我的应用程序中可能需要Ioc框架的一些场景?
谢谢.
4回答之后的更新:我真的很喜欢我们从你们那里得到的所有答案.我刚刚阅读了这篇帖子依赖注入 - 解剖/这个人用它进行单元测试和你刚才提供的StackOverflow链接,是的,我错过了那个重大的复杂部分,所以让我自己习惯使用IoC框架.再次感谢.
我会投票给你答案,但我只是得到一条橙色的信息说我做不到.
感谢那个突出显示我发布的代码的人.