paip.使用繼承機制來實現控制反轉或依賴倒置
平時實現IOC時常使用INTERFACE來實現...總覺得寫的代碼複雜,又多...經過我的研究,可以使用繼承機制來IOC..相比INTERFACE方式,代碼更加的簡裝,更容易理解..
業務場景A:
用戶註冊user.reg() ,其中要實現增加帳戶操作 Account.iniacc();
-----------類user---------------
public Account acc = new Account();
public void reg()
{
addUser();
acc.iniacc(uname);
}
-------------類Account ---------------
virtual public void iniacc(string uname)
{ }
界面調用 :
user uc = new user();
uc.reg();
業務場景B,需要複用 reg(),但是不需要賬戶操作;此時,可以新建一個類acc2,重寫iniacc(),使其爲空,不對賬戶操作..
-----------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.更加的靈活..易於理解