如果大家研究一些开源项目,会发现无处不在的DI(Dependency Injection依赖注入)。
本篇文章将会详细讲述如何在MVC中使用Ninject实现DI

文章提纲

  • 场景描述 & 问题引出

  • 第一轮重构

  • 引入Ninject

  • 第二轮重构

  • 总结

场景描述 & 问题引出

DI是一种实现组件解耦的设计模式。
先模拟一个场景来引出问题,我们直接使用Ninject官网的示例:一群勇士为了荣耀而战。
首先,我们需要一件合适的武器装备这些勇士。

class Sword {    public void Hit(string target)    {
        Console.WriteLine("Chopped {0} clean in half", target);
    }
}

其次,我们定义勇士类。
勇士有一个Attack()方法,用来攻击敌人。

class Samurai{    readonly Sword sword;    public Samurai()    {        this.sword = new Sword();
    }    
&