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

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

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

    posts - 262,  comments - 221,  trackbacks - 0
    一、Observer模式的意圖:

    在對象的內部狀態發生變化時,自動通知外部對象進行響應。

    二、Observer模式的構成:

    ·被觀察者:內部狀態有可能被改變,而且又需要通知外部的對象

    ·觀察者:需要對內部狀態的改變做出響應的對象

    三、Observer模式的Java實現:

    Java的API中已經為我們提供了Observer模式的實現。具體由java.util.Observable類和java.util.Observer接口完成。

    前者有兩個重要的方法:

    ·setChanged:設置內部狀態為已改變

    ·notifyObservers(Object obj):通知觀察者所發生的改變,參數obj是一些改變的信息

    后者有一個核心方法:

    ·update(Object obj):相應被觀察者的改變,其中obj就是被觀察者傳遞過來的信息,該方法會在notifyObservers被調用時自動調用。

    下面是Observer模式的實現過程:

    ·創建一個被觀察者,繼承java.util.Observable

    ·創建一個觀察者,實現java.util.Observer接口

    ·注冊觀察著,調用addObserver(Observer observer)

    ·在被觀察者改變對象內部狀態的地方,調用setChanged()方法,然后調用notifyObservers(Object)方法,通知被觀察者

    ·在觀察者的update(Object)方法中,對改變做出響應。

    四、Observer模式的好處:

    1.Observer模式的優點:

       ·被觀察者只需要知道誰在觀察它,無需知道具體的觀察細節

       ·被觀察者一旦發生變化,只需要通過廣播的方式告知觀察者,至于消息如何到達則不需知道。這樣的話無疑消除了被觀察者和觀察者之間通信的硬編碼

       ·當一個被觀察者同時被多個觀察著觀察時,觀察者可以只選擇自己感興趣的事件,而忽略其它的事件
      
       ·多個觀察者組合起來可以形成一個觀察鏈,如果一旦需要回滾多個操作,此時觀察鏈可以發揮作用

       ·觀察者可以實時對被觀察對象的變化做出響應,例如自動告警、中斷運行等


    2.運用Observer模式可以

       ·屏蔽線程間的通信機制:例如兩個線程之間,主線程可以作為觀察者,執行線程是被觀察者。彼此之間只知道對方存在,但不知道之間通信的細節

       ·消除硬編碼:如果沒有Observer模式,則只能采用回調的模式,或者在代碼中顯示地調用觀察者

       ·優化異常機制:特別適合在異常發生時向頂層監控,減少try-catch代碼量



    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2008-03-07 13:55 Paul Lin 閱讀(3084) 評論(0)  編輯  收藏 所屬分類: 模式與重構
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久丫精品国产亚洲av| 在线视频精品免费| 免费观看a级毛片| 精品久久久久久亚洲精品| 97无码人妻福利免费公开在线视频 | 亚洲日韩精品射精日| 毛片基地看看成人免费| 亚洲中文字幕无码爆乳AV| 在线看片免费人成视频福利| 亚洲成av人片在线观看无码不卡| av网站免费线看| 在线日韩日本国产亚洲| 久久精品免费视频观看| 亚洲福利视频一区二区三区| 国内精品免费麻豆网站91麻豆| 亚洲AV综合色区无码二区爱AV| 午夜时刻免费入口| h片在线观看免费| 噜噜噜亚洲色成人网站∨| 香蕉免费一级视频在线观看| 久久精品亚洲视频| 拍拍拍又黄又爽无挡视频免费| 亚洲av无码偷拍在线观看| 亚洲精品无码久久久久去q| 国产精品1024永久免费视频| 男女男精品网站免费观看| 亚洲高清免费在线观看| 亚洲AⅤ优女AV综合久久久| 一区二区三区在线观看免费| 亚洲国产精品无码专区影院 | 亚洲一区精品伊人久久伊人| 67pao强力打造高清免费| 一级做受视频免费是看美女| 蜜桃成人无码区免费视频网站 | 久久久久av无码免费网| 成人特级毛片69免费观看| 亚洲午夜国产精品| 亚洲精品自产拍在线观看| 在线观看的免费网站| 亚洲精品不卡视频| 亚洲色精品88色婷婷七月丁香|