我的漫漫程序之旅

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

          Deafult Adapter的學(xué)習(xí)

          一、概述

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

          二、結(jié)構(gòu)

          defaultadapter.png

           

          三、動(dòng)機(jī)

          對(duì)于一個(gè)接口不想使用其所有的方法時(shí)。


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


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


          簡單實(shí)現(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) 評(píng)論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

          主站蜘蛛池模板: 娱乐| 满城县| 淄博市| 牙克石市| 全州县| 峡江县| 东丽区| 雅安市| 怀安县| 金乡县| 剑川县| 丰原市| 虎林市| 仙游县| 浙江省| 莱西市| 镇江市| 葫芦岛市| 东源县| 县级市| 神农架林区| 金乡县| 栾城县| 纳雍县| 沈丘县| 包头市| 治多县| 武宣县| 襄城县| 鄂托克旗| 通山县| 元江| 含山县| 南江县| 正定县| 康平县| 平远县| 手游| 东丰县| 铁力市| 博兴县|