<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

    為一個接口提供缺省實現,這樣子類可以從這個缺省實現進行擴展.而不必從原有接口進行擴展.作為適配器模式的一個特例,缺省適配模式在java語言中有著特殊的應用.(引用java模式書)

    adapter是一個非常常用的設計模式.
    像windows的每個窗口,事件很多個.關閉,移動,最大化,最小化,
    java代碼設計如下:
    interface 窗口{
    public void 關閉();
    public void 移動();
    public ovid 最大化();
    ...
    ...
    }
    如果客戶點擊了關閉按鈕,java類實現如下:
    Frame implements 窗口{
    public void 關閉(){
    System.out.println("關閉窗口");
    }

    public void 移動()[
    }
    public ovid 最大化(){
    }
    ...
    ...
    }
    這里面我們可以看出,我們關注的只有關閉按鈕觸發的事件,其它的我們不用管.但是在java類中,我們必須把接口的所有方法都給實現.這樣我們連一些沒有用的方法也得給實現.那怕是空實現.


    下面我們來建一個抽象類來實現這個接口.
    public abstract Frame implements 窗口{
    public void 關閉(){

    }

    public void 移動(){
    }
    public ovid 最大化(){
    }
    ...
    ...
    }
    這里我們可以看出,抽象類給每個接口一個空的實現,那我們都可以在抽象類的基礎上進行擴展。關閉功能實現如下:
    public CloseFrame extends Frame{
    public void 關閉(){
    System.out.println("關閉窗口");

    }
    }

    像在java中的事件處理都是用適配器模式來實現的。接口,抽象類都是已經寫好的。我們只需要實現具體功能的類就可以了。

    再舉個簡單的例子:
    假如存在如下接口:
    interface TestInterface{
    void test1();
    void test2();
    void test3();
    }
    如果我們只關注test1接口應該怎樣寫呢。
    abstract class TestAbstract implements Test{
    public void test1(){
    }
    public void test2(){
    }
    public void test3(){
    }
    }
    class TestTest1 extends TestAbstract{
    public void test1(){
    System.out.println("方法1實現");
    }
    }
    那么在什么情況下用相信大家已經能看得出來了吧。假如你不準備實現接口的所有方法。就可以建一個抽象類來實現這個接口的所有方法,當然這里全都是空的實現.然后再寫一個類繼承這個抽象類就可以得到你想要的結果了.

     

     
     1package com.lucky.util;
     2
     3import java.util.Collection;
     4
     5public interface IAdapterMode {
     6    
     7    public void print();
     8
     9    public boolean insert(Object instance);
    10    
    11    public boolean delete(Object instance);
    12    
    13    public boolean update(Object instance);
    14    
    15    public Collection find(String sql);
    16}

    17
     1package com.lucky.util;
     2
     3import java.lang.reflect.Method;
     4import java.lang.reflect.Proxy;
     5import java.util.Collection;
     6
     7public abstract class AdapterModeAbstract implements IAdapterMode {
     8    
     9    public void print() {
    10        // TODO Auto-generated method stub
    11        System.out.println("調用了print");
    12    }

    13
    14    public boolean delete(Object instance) {
    15        // TODO Auto-generated method stub
    16        return false;
    17    }

    18
    19    public Collection find(String sql) {
    20        // TODO Auto-generated method stub
    21        return null;
    22    }

    23
    24    public boolean insert(Object instance) {
    25        // TODO Auto-generated method stub
    26        return false;
    27    }

    28
    29    public boolean update(Object instance) {
    30        // TODO Auto-generated method stub
    31        return false;
    32    }

    33    
    34}

    35
    posted on 2007-09-23 11:35 禮物 閱讀(183) 評論(0)  編輯  收藏

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

    網站導航:
     
    主站蜘蛛池模板: 全免费一级毛片在线播放| 色多多www视频在线观看免费| A级毛片高清免费视频在线播放| 国产成人免费片在线观看| 在线观看国产一区亚洲bd| 成人免费视频国产| 免费看一级毛片在线观看精品视频| 国产猛烈高潮尖叫视频免费 | 国产精品免费网站| 亚洲国产精品综合一区在线| 免费观看激色视频网站(性色)| 亚洲狠狠ady亚洲精品大秀| 欧亚精品一区三区免费| 伊人久久五月丁香综合中文亚洲 | 亚洲精品老司机在线观看| 亚洲免费日韩无码系列| 国产亚洲3p无码一区二区| 中文字幕无码一区二区免费| 精品亚洲aⅴ在线观看| 黄+色+性+人免费| MM1313亚洲精品无码久久| 亚洲成av人在片观看| 久久久久久久99精品免费观看| 亚洲黄色免费观看| 免费看AV毛片一区二区三区| 免费视频精品一区二区| 亚洲av最新在线网址| 无码中文在线二区免费| 一级片在线免费看| 亚洲黄色免费网站| 免费一级一片一毛片| 免费日本一区二区| 亚洲日韩国产一区二区三区在线 | 国产免费牲交视频免费播放| 亚洲爱情岛论坛永久| 久久这里只有精品国产免费10| 一级**爱片免费视频| 亚洲一区动漫卡通在线播放| 亚洲AV网站在线观看| 亚洲人成免费网站| 一个人看的www视频免费在线观看|