如果大家研究一些開源項目,會發(fā)現(xiàn)無處不在的DI(Dependency Injection依賴注入)。
本篇文章將會詳細講述如何在MVC中使用Ninject實現(xiàn)DI

文章提綱

  • 場景描述 & 問題引出

  • 第一輪重構(gòu)

  • 引入Ninject

  • 第二輪重構(gòu)

  • 總結(jié)

場景描述 & 問題引出

DI是一種實現(xiàn)組件解耦的設(shè)計模式。
先模擬一個場景來引出問題,我們直接使用Ninject官網(wǎng)的示例:一群勇士為了榮耀而戰(zhàn)。
首先,我們需要一件合適的武器裝備這些勇士。

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();
    }    
&