paip.使用繼承機制來實現控制反轉或依賴倒置 ide
平時實現IOC時常使用INTERFACE來實現...總以爲寫的代碼複雜,又多...通過個人研究,能夠使用繼承機制來IOC..相比INTERFACE方式,代碼更加的簡裝,更容易理解..繼承
業務場景A:
用戶註冊user.reg() ,其中要實現增長賬戶操做 Account.iniacc();ip
-----------類user---------------
public Account acc = new Account();
public void reg()
{string
addUser();it
acc.iniacc(uname);class
}方法
-------------類Account ---------------
virtual public void iniacc(string uname)
{ }總結
界面調用 :
user uc = new user();
uc.reg();注入
業務場景B,須要複用 reg(),可是不須要帳戶操做;此時,能夠新建一個類acc2,重寫iniacc(),使其爲空,不對帳戶操做..di
-----------acc2---------------
public class acc2 : Account
{
override public void iniacc(string uname)
{
}
}
此時,界面調用能夠注入acc2 ,這樣在reg()中調用iniacc()就是acc2.iniacc()了.呵呵.:
user uc = new user();
uc.acc = new acc2();
uc.reg();
**********個人總結,相比interface方式,優勢有下:
1. 代碼量少,簡潔2. 能夠有默認實現,只有必須重寫的狀況下再重寫....若是用interface方式,則沒有了默認實現..3.僅對須要的方法進行重寫,而interface方式,則要求強制實現上級類的全部方法...4.更加的靈活..易於理解