很多時候在考慮設計而不是考慮編碼的時候,接口才真正清晰,明朗的把它的原理展現給你。舉個簡單的例子,計算機的主機闆和顯示卡,他們之間有統一的約定,隻要符合PCI擴充的标準,那麼你的顯示卡肯定能插上主機闆,并能通路主機闆來的資訊。這個約定就是接口。很多時候,在軟體開發領域,接口設計應該是系統分析者的事情,也就是Team Leader的是事情了。Team Leader根據需求設計出Schelable的接口和Architecture,程式員根據他的Architecture去編碼,最後開發,測試等等。其實,很多時候,你不用接口也能實作相同甚至更完備的功能。但是,有了接口,會使整個設計變得清晰,明朗。如果從軟體的擴充性和重用性上看,接口的設計更顯的舉足輕重。是以說,了解和認識接口應該從設計的角度看,而不是編碼的角度。
附:A Sample
需求:在一個表格(已有的Table類)裡面我要顯示這樣一些資料:
1 文本資訊: 顯示文本
2 圖檔資訊:顯示圖檔
3 視訊資訊:播放視訊
設計如下:
interface IDisplayable
{
void Display(Table table);
}
public class Text:IDisplayable
public void Display(Table table)
//implements the text display method
}
public class Picture:IDisplayable
public void Disply(Table table)
//implements picture display here
public class Vedio:IDisplayable
//implements vedio play
public class Test
Text t = new Text("Hello");
Picture p = new Picture("1.jpg");
Vedio v = new Vedio("sample.avi");
Table table = new Table();
Table.Add(t);
Table.Add(p);
Table.Add(v);
Table.Show();
foreach(IDisplayable disp in Table.Items)
disp.Display(this.table);
}
}