學習介面應用之C#介面執行個體

來源:互聯網
上載者:User

介面永遠不能直接執行個體化。--msdn   
但可以說這樣用
   
介面    執行個體   =   new    實現介面的類() ;  表示產生一個實現某某介面的類的對象。

 

 

針對介面編程能協助達到物件導向開發和設計中"低耦合"的要求.  
      舉個例子:某公司有一台特殊印表機,還可以使用一年,一年後可能換為另一種印表機,這兩種印表機都特殊而貴.所以現在的程式希望換了印表機後也少量修改就可用.  
    方法:  
    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.