java設計模式連載(6) –適配者模式

來源:互聯網
上載者:User

 java設計模式連載(6) --適配者模式

 

名稱:Adapter

 

意圖:  將一個類的介面轉換成客戶希望的另外一個介面。A d a p t e r 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。

 

適用性:

  • 你想使用一個已經存在的類,而它的介面不符合你的需求。
  • 你想建立一個可以複用的類,該類可以與其他不相關的類或不可預見的類(即那些介面可能不一定相容的類)協同工作。
  • (僅適用於對象A d a p t e r )你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的介面。對象適配器可以適配它的父類介面。

     

     

    執行個體:

     

    1. 構建一個目標介面 ,想利用這個介面  但是不能改變這個介面的源碼。假設一把鎖這個介面

    package Adapter_Pattern;public  interface  Lock {                 //目標鎖       public  void   ordinarylockFunction();  //普通鎖功能 }

    2.  利用密碼鎖的功能   寫一個Adaptee

       

    package Adapter_Pattern;public class   Tricklock{ //Adapteepublic void  TricklockFunction(){ System.out.println("密碼鎖可以用來鎖保險柜");     }}

    3.   利用普通鎖來構建一個適配器 

     

    package Adapter_Pattern;public class   Ordinarylock   implements Lock{  //Adapter       private  Tricklock  tricklock;  public Ordinarylock(Tricklock tricklock){  this.tricklock = tricklock;  } public void ordinarylockFunction() {   
  •                tricklock.TricklockFunction();       }    }
  • 4.  測試類別

      

    package Adapter_Pattern;public class Test { /** * 要使一個目標鎖具有密碼鎖的功能 ,組合而成。 *  @param args*/   public static void main(String[] args) {          Lock lock = new  Ordinarylock(new Tricklock());                               lock.ordinarylockFunction();   //現在鎖具有鎖住保險柜的功能了           }}

    5. 多謝瀏覽,敬請斧正。

     

     

                       

     

     

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.