原文網址:http://www.php.cn/
假設我們公司有兩種程式設計師:VB程式設計師,指的是用VB寫程式的程式設計師,用clsVBProgramer這個類別表示; Delphi程式設計師指的是用Delphi寫入程式的程式設計師,用clsDelphiProgramer這個類別來表示。每個類別都有一個WriteCode()方法。定義如下:
class clsVBProgramer() { .... WriteCode() { //用VB语言写代码; } .... } class clsDelphiProgramer() { .... WriteCode() { //用Delphi语言写代码; } .... }
現在公司來了一個項目,要求派某個程式設計師來寫一個程式。
class clsProject() { .... WritePrograme(clsVBProgramer programer)//用VB写代码 { programer.WriteCode(); } WritePrograme(clsDelphiProgramer programer)//重载方法,用Delphi写代码 { programer.WriteCode(); } ...... }
在主程式中我們可以這樣寫:
reee
但是如果改用接口,就完全不一樣了:首先聲明一個程式設計師介面: 以上就是C# 介面作用的深入理解的內容,更多相關內容請關注PHP中文網(www.php.cn)! main()
{
clsProject proj=new clsProject;
//如果需要用VB写代码
clsVBProgramer programer1=new clsVBProgramer;
proj.WritePrograme(programer1);
//如果需要用Delphi写代码
clsDelphiProgramer programer2=new clsDelphiProgramer;
proj.WritePrograme(programer2);
}
interface IProgramer()
{
WriteCode();
}
然后声明两个类,并实现IProgramer接口:
class clsVBProgramer():IProgramer
{
....
WriteCode()
{
//用VB语言写代码;
}
....
}
class clsDelphiProgramer():IProgramer
{
....
WriteCode()
{
//用Delphi语言写代码;
}
....
}
另外我們如果把clsProject這個類封成一個組件,那麼當我們的用戶需要要擴充功能的時候,我們只需要在外部做很小的修改就能實現,可以說根本就用不著改動我們已經封好組件!是不是很方便,很強大!