C# interface 介面理解

來源:互聯網
上載者:User

針對介面編程能協助達到物件導向開發和設計中"低耦合"的要求.
舉個例子:某公司有一台特殊印表機,還可以使用一年,一年後可能換為另一種印表機,這兩種印表機都特殊而貴.所以現在的程式希望換了印表機後也少量修改就可用.
方法:
1,定義一個印表機介面.
2,定義印表機類A,B,分別實現此介面.
3,定義一個工廠類,在類中可選擇返回由A實現的介面,或者由B實現的介面.
4,在程式中使用印表機時,就可以使用工廠類來調用印表機,而不需要知道具體的是什麼印表機.
如果印表機換了,只需要修改工廠類就行了.如果有一千個地方都調用過印表機,就不需要一個一個修改.修改一個地方就行了.介面充當一個隔離層的作用.

//定義印表機介面 
interface Iprint
{
bool PrintData(string data);
}

//定義印表機類A,實現介面,(繼承)

class PrintA:Iprint
{
public virtual bool PrintData(string data)
{
//具體商務邏輯略
}

定義印表機類B,實現介面,(繼承)

class PrintB:Iprint
{
public virtual bool PrintData(string data)
{
//具體商務邏輯略
}
}

//定義工廠類
class PrintFactory{
public Iprint CreatePrint()
{
//返回一個由打機類A,或B實現的介面,比如
return new PrintA();
}
}

//通過工廠類,調用印表機
private void button1_Click(object sender,EventArgs e)
{
PrintFactory myFactory=new PrintFactory();
Iprint myPrint=myFactory.CreatePrint();        
myPrint.PrintData("這樣做很方便啊");

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.