C#接口實(shí)例應(yīng)用的的深入探討
C#接口實(shí)例應(yīng)用問題的提出,假設(shè)我們公司有兩種程序員:VB程序員,指的是用VB寫程序的程序員,用clsVBProgramer這個類表示;Delphi程序員指的是用Delphi寫程序的程序員,用clsDelphiProgramer這個類來表示。每個類都有一個WriteCode()方法。
C#接口實(shí)例定義如下:
- class clsVBProgramer()
- {
- ....
- WriteCode()
- {
- //用VB語言寫代碼;
- }
- ....
- }
- class clsDelphiProgramer()
- {
- ....
- WriteCode()
- {
- //用Delphi語言寫代碼;
- }
- ....
- }
現(xiàn)在公司來了一個項(xiàng)目,要求派某個程序員寫一個程序。
C#接口實(shí)例
- class clsProject()
- {
- ....
- WritePrograme(clsVBProgramer programer)//用VB寫代碼
- {
- programer.WriteCode();
- }
- WritePrograme(clsDelphiProgramer programer)
- //重載方法,用Delphi寫代碼
- {
- programer.WriteCode();
- }
- ......
- }
在主程序中我們可以這樣寫:
C#接口實(shí)例:
- main()
- {
- clsProject proj=new clsProject;
- //如果需要用VB寫代碼
- clsVBProgramer programer1=new clsVBProgramer;
- proj.WritePrograme(programer1);
- //如果需要用Delphi寫代碼
- clsDelphiProgramer programer2=new clsDelphiProgramer;
- proj.WritePrograme(programer2);
- }
但是如果這時公司又來了一個C#程序員,我們怎么改這段程序,使它能夠?qū)崿F(xiàn)用C#寫程序的功能呢?我們需要增加一個新類clsCSharpProgramer,同時在此clsProject這個類中要再次重載WritePrograme(clsCSharpProgramer programer)方法。這下麻煩多了。如果還有C程序員,C++程序員,JAVA程序員呢。麻煩大了!
但是如果改用接口,就完全不一樣了,首先聲明一個程序員接口:
C#接口實(shí)例:
- interface IProgramer()
- {
- WriteCode();
- }
然后聲明兩個類,并實(shí)現(xiàn)IProgramer接口:
- class clsVBProgramer():IProgramer
- {
- ....
- WriteCode()
- {
- //用VB語言寫代碼;
- }
- ....
- }
- class clsDelphiProgramer():IProgramer
- {
- ....
- WriteCode()
- {
- //用Delphi語言寫代碼;
- }
- ....
- }
- 對clsProject這個類進(jìn)行一下修改:
- class clsProject()
- {
- ....
- WritePrograme(IProgramer programer)
- {
- programer.WriteCode();//寫代碼
- }
- ......
- }
- main()
- {
- clsProject proj=new clsProject;
- IProgramer programer;
- //如果需要用VB寫代碼
- programer=new clsVBProgramer;
- proj.WritePrograme(programer);
- //如果需要用Delphi寫代碼
- programer=new clsDelphiProgramer;
- proj.WritePrograme(programer);
- }
如果再有C#,C,C++,JAVA這樣的程序員添加進(jìn)來的話,我們只需把它們相關(guān)的類加進(jìn)來,然后在main()中稍做修改就OK了。擴(kuò)充性特別好!
另外我們?nèi)绻裞lsProject這個類封成一個組件,那么當(dāng)我們的用戶需要要擴(kuò)充功能的時候,我們只需要在外部做很小的修改就能實(shí)現(xiàn),可以說根本就用不著改動我們已經(jīng)封好組件!是不是很方便,很強(qiáng)大!
C#接口實(shí)例的應(yīng)用問題深入探討就向你介紹到這里,希望對你了解和學(xué)習(xí)C#接口實(shí)例有所幫助。
【編輯推薦】