隨筆-126  評論-247  文章-5  trackbacks-0

          適配器模式Adapter 模式),將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

          1. 類的適配器模式結(jié)構(gòu)圖:

          從圖中可以看出,Adaptee 類(源類)并沒有 operation2() 這個方法,而客戶端正期待這個方法,為使客戶端能夠使用 Adaptee 類,在此為其提供了一個中間環(huán)節(jié),

          即 Adapter 類(適配器類),把 Adaptee 的 API 與 Target 的 API 銜接起來,在這里,Adapter 與 Adaptee 是繼承關(guān)系,這就決定了這個適配器的模式是類。

          示意圖的實現(xiàn)源碼:


          package pattern.adapter;
          /**
           * -----------------------------------------
           * @描述  源類(需要適配的類)
           * @作者  fancy
           * @郵箱  fancydeepin@yeah.net
           * @日期  2012-8-5 <p>
           * -----------------------------------------
           
          */

          public class Adaptee {

              
          public void operation1(){
                  
                  
          //do other things here
              }

          }




          package pattern.adapter;
          /**
           * -----------------------------------------
           * @描述  目標接口
           * @作者  fancy
           * @郵箱  fancydeepin@yeah.net
           * @日期  2012-8-5 <p>
           * -----------------------------------------
           
          */

          public interface Target {

              
          public void operation1();
              
              
          public void operation2();
              
          }




          package pattern.adapter;
          /**
           * -----------------------------------------
           * @描述  適配器
           * @作者  fancy
           * @郵箱  fancydeepin@yeah.net
           * @日期  2012-8-5 <p>
           * -----------------------------------------
           
          */

          public class Adapter extends Adaptee implements Target{

              
          public void operation2(){
                  
                  
          //do other things here
              }

          }




          2. 對象的適配器模式結(jié)構(gòu)圖:

          從圖中可以看出,Adaptee 類(源類)并沒有 operation2() 這個方法,而客戶端正期待這個方法,為使客戶端能夠使用 Adaptee 類,在此為其提供了一個包裝類,

          即 Adapter 類(適配器類),它包裝了一個 Adaptee 類的實例,從而此包裝類能夠把 Adaptee 的 API 與 Target 的 API 銜接起來,在這里,Adapter 與 Adaptee 是委派關(guān)系,

          這就決定了這個適配器的模式是對象。

          示意圖中的 Target 和 Adaptee 源代碼不變,下面來看一下 Adapter 類的源碼:


          package pattern.adapter;
          /**
           * -----------------------------------------
           * @描述  適配器
           * @作者  fancy
           * @郵箱  fancydeepin@yeah.net
           * @日期  2012-8-5 <p>
           * -----------------------------------------
           
          */

          public class Adapter implements Target{

              
          private Adaptee adaptee;
              
              
          public Adapter(Adaptee adaptee){
                  
          this.adaptee = adaptee;
              }

              
              @Override
              
          public void operation1() {
                  
                  adaptee.operation1();
              }


              @Override
              
          public void operation2() {
                  
                  
          //do other things here
              }


          }



            
          posted on 2012-08-05 16:50 fancydeepin 閱讀(1123) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 卓资县| 奉新县| 临夏市| 务川| 舞阳县| 漯河市| 同江市| 颍上县| 彭水| 金秀| 蒙阴县| 云龙县| 陇西县| 达日县| 和龙市| 南城县| 琼海市| 临澧县| 天长市| 大庆市| 都兰县| 斗六市| 开江县| 思南县| 郎溪县| 哈巴河县| 新乐市| 安龙县| 吴江市| 弥勒县| 东海县| 华容县| 元氏县| 扶沟县| 禄劝| 肃南| 隆化县| 安溪县| 将乐县| 兰溪市| 丽水市|