我的漫漫程序之旅

          專注于JavaWeb開發(fā)
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數(shù)據(jù)加載中……

          Deafult Adapter的學習

          一、概述

          當不需要全部實現(xiàn)適配器接口提供的方法時,可先設計一個抽象類實現(xiàn)適配器接口,并為接口中每個方法提供一個默認實現(xiàn)(空方法)。那么該抽象類的子類可有選擇地覆蓋父類的某些方法來實現(xiàn)需求。

          二、結構

          defaultadapter.png

           

          三、動機

          對于一個接口不想使用其所有的方法時。


          我覺得把Default Adapter模式Adapter模式割裂開來,不會影響對Default Adapter模式的理解。
          Default Adapter模式就是為目標接口提供一個平庸實現(xiàn)層,真正的實現(xiàn)類從此平庸實現(xiàn)層繼承,Override其中對自己有意義的方法,而其他方法保持其平庸狀態(tài)。
          為Target接口所需的方法統(tǒng)統(tǒng)提供一套缺省實現(xiàn),通常的做法是,除非你特別要求,否則我什么都不做。
          如果實現(xiàn)類比較多而且需要實現(xiàn)的方法很多、真正做事兒的方法很少,那么Default Adapter模式會為系統(tǒng)省下不少重復代碼。


          缺省適配器模式:為一個接口提供缺省實現(xiàn),這樣子類型可以從這個缺省實現(xiàn)進行擴展,而不必從原有接口進行擴展。
          “平庸化”的適配器模式。


          簡單實現(xiàn)一下:
          接口:
          package com_pattern_deafultadapter;

          /**
           * 接口(提供一些要使用的方法)
           * 
          @author zdw
           *
           
          */

          public interface AbstraceService
          {
              
          public void method1();

              
          public void method2();

              
          public void mehtod3();
          }

          缺省適配器類:
          package com_pattern_deafultadapter;

          /*******************************************************************************
           * 缺省適配器類
           * 
           * 
          @author zdw
           * 
           
          */

          public class ServiceAdaper implements AbstraceService
          {
              
          public void method1()
              
          {
              }


              
          public void method2()
              
          {
              }


              
          public void mehtod3()
              
          {
              }

          }

          具體類:
          package com_pattern_deafultadapter;

          /*******************************************************************************
           * 真正要使用方法的類
           * 
           * 
          @author zdw
           * 
           
          */

          public class ConcreateService extends ServiceAdaper
          {
              
          // 重寫自己需要的方法
              @Override
              
          public void method1()
              
          {
              }

          }


          posted on 2008-05-24 08:35 々上善若水々 閱讀(972) 評論(0)  編輯  收藏 所屬分類: 設計模式

          主站蜘蛛池模板: 台安县| 子洲县| 磐石市| 印江| 江达县| 五峰| 枞阳县| 凤凰县| 佛山市| 虎林市| 谢通门县| 体育| 台江县| 澄江县| 徐闻县| 墨玉县| 台中市| 芦溪县| 民权县| 庆云县| 华宁县| 九寨沟县| 高安市| 佛冈县| 上杭县| 张家口市| 凤山市| 金湖县| 岗巴县| 饶河县| 重庆市| 连江县| 阆中市| 房产| 阜新市| 宜昌市| 昭平县| 陆良县| 陇西县| 西藏| 丰县|