針對接口編程能幫助達到面向對象開(kāi)發(fā)和設計中"低耦合"的要求.
舉個(gè)例子:某公司有一臺特殊打印機,還可以使用一年,一年后可能換為另一種打印機,這兩種打印機都特殊而貴.所以現在的程序希望換了打印機后也少量修改就可用.
方法:
1,定義一個(gè)打印機接口.
2,定義打印機類(lèi)A,B,分別實(shí)現此接口.
3,定義一個(gè)工廠(chǎng)類(lèi),在類(lèi)中可選擇返回由A實(shí)現的接口,或者由B實(shí)現的接口.
4,在程序中使用打印機時(shí),就可以使用工廠(chǎng)類(lèi)來(lái)調用打印機,而不需要知道具體的是什么打印機.
如果打印機換了,只需要修改工廠(chǎng)類(lèi)就行了.如果有一千個(gè)地方都調用過(guò)打印機,就不需要一個(gè)一個(gè)修改.修改一個(gè)地方就行了.接口充當一個(gè)隔離層的作用.
//定義打印機接口
interface Iprint
{
bool PrintData(string data);
}
//定義打印機類(lèi)A,實(shí)現接口,(繼承)
class PrintA:Iprint
{
public virtual bool PrintData(string data)
{
//具體業(yè)務(wù)邏輯略
}
}
定義打印機類(lèi)B,實(shí)現接口,(繼承)
class PrintB:Iprint
{
public virtual bool PrintData(string data)
{
//具體業(yè)務(wù)邏輯略
}
}
//定義工廠(chǎng)類(lèi)
class PrintFactory{
public Iprint CreatePrint()
{
//返回一個(gè)由打機類(lèi)A,或B實(shí)現的接口,比如
return new PrintA();
}
}
//通過(guò)工廠(chǎng)類(lèi),調用打印機
private void button1_Click(object sender,EventArgs e)
{
PrintFactory myFactory=new PrintFactory();
Iprint myPrint=myFactory.CreatePrint();
myPrint.PrintData("這樣做很方便啊");
}
聯(lián)系客服