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

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

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

    細心!用心!耐心!

    吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學業(yè),五六點粗墨,七八筆買賣,九十道人情。

    BlogJava 聯(lián)系 聚合 管理
      1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
    在Java中如果要定義事件處理的方式,必須實作EventListener的子介面,例如實作 WindowListener來定義一些視窗事件的處理方式,WindowListener中定義了七個方法:
    public interface WindowListener extends EventListener {
        public void windowOpened(WindowEvent e);
        public void windowClosing(WindowEvent e);
        public void windowClosed(WindowEvent e);
        public void windowIconified(WindowEvent e);
        public void windowDeiconified(WindowEvent e);
        public void windowActivated(WindowEvent e);
        public void windowDecativated(WindowEvent e);
    }
     
    可以定義一個類別來實作這個介面,以完全想要的事件處理,例如:
    public class WindowEventHandler implements WindowListener {
        public void windowOpened(WindowEvent e) {}
        public void windowClosing(WindowEvent e) {}

        public void windowClosed(WindowEvent e) {
            System.exit(0);
        }

        public void windowIconified(WindowEvent e) {}
        public void windowDeiconified(WindowEvent e) {}
        public void windowActivated(WindowEvent e) {}
        public void windowDecativated(WindowEvent e) {}
    }
     

    然而這有個缺點,實作介面的原則是您必須實作當中所定義的所有方法,即使您對某些事件並不感興趣,您也必須實作一個沒有內(nèi)容的空方法,代表您已經(jīng)實作了介面中定義的方法,然而有時,您並不知道介面中到底定義了幾個方法,或是知道也不知道方法的確切名稱與參數(shù),即使您查了API,在程式中寫下一堆沒有實作內(nèi)容的方法也是很煩人的一件事。

    WindowAdapter類別預先實作了WindowListener介面,每個方法中都是空的實作,如下所示:
    public abstract class WindowAdapter
                             implements WindowListener {
        public void windowOpened(WindowEvent e) {}
        public void windowClosing(WindowEvent e) {}
        public void windowClosed(WindowEvent e) {}
        public void windowIconified(WindowEvent e) {}
        public void windowDeiconified(WindowEvent e) {}
        public void windowActivated(WindowEvent e) {}
        public void windowDecativated(WindowEvent e) {}
    }
     
    可以繼承WindowAdapter類別,並重新定義一些您所感興趣的事件,如此一來,就可以避開之前所提及的,直接實作 WindowListener介面的缺點,如下所示:
    public class WindowEventHandler extends WindowAdapter {
        public void windowClosed(WindowEvent e) {
            System.exit(0);
        }
    }
     

    這就是Default Adapter模式,它使用一個中介的Adapter類別來將真正感興趣的事件實作類別,配接至事件處理介面,上面的程式其 UML 圖如下:
    DefaultAdapter

    將上圖一般化,Default Adapter模式的結(jié)構(gòu)如下所示:
    DefaultAdapter
    posted on 2007-04-17 10:40 張金鵬 閱讀(180) 評論(0)  編輯  收藏 所屬分類: Structural 模式
    主站蜘蛛池模板: 亚洲AV无码成人网站久久精品大| 国产男女性潮高清免费网站 | 大地资源中文在线观看免费版| 波多野结衣中文一区二区免费 | 亚洲六月丁香六月婷婷蜜芽| 1000部免费啪啪十八未年禁止观看| 亚洲成AV人片在| 特级精品毛片免费观看| 亚洲男人第一av网站| 18禁美女裸体免费网站| 亚洲人成黄网在线观看| 在线免费不卡视频| 免费人成视频在线播放| 亚洲伊人久久综合中文成人网| caoporm超免费公开视频| 亚洲国产精品一区二区成人片国内| 国产免费AV片在线观看| 亚洲天天在线日亚洲洲精| 免费黄色福利视频| 亚洲精品第一国产综合亚AV| 亚洲美女高清一区二区三区| 国产人成网在线播放VA免费| 亚洲一区二区三区电影| 成人免费AA片在线观看| 国产午夜亚洲精品不卡免下载| 亚洲欧洲久久av| 亚洲免费在线视频观看| 亚洲国产成人精品无码区花野真一 | 中文字幕人成人乱码亚洲电影| 国内少妇偷人精品视频免费| 91亚洲国产成人久久精品网址 | 国产亚洲精品拍拍拍拍拍 | 女人18毛片a级毛片免费| 免费夜色污私人影院网站| 无码乱人伦一区二区亚洲一| 亚洲天堂免费在线| 男女猛烈激情xx00免费视频| 久久精品国产亚洲AV麻豆~| 性感美女视频在线观看免费精品| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 67194熟妇在线永久免费观看|