如果大家研究一些開(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(); } &