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

文章提綱

  • 場(chǎng)景描述 & 問(wèn)題引出

  • 第一輪重構(gòu)

  • 引入Ninject

  • 第二輪重構(gòu)

  • 總結(jié)

場(chǎng)景描述 & 問(wèn)題引出

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

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

其次,我們定義勇士類。
勇士有一個(gè)Attack()方法,用來(lái)攻擊敵人。

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