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