離弦之Ray

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks
           

                 這是Head First Design Pattern里面介紹的第二個Pattern,叫做Observer Pattern,其核心概念就是一種一對多的關系。

          其中的“一”,類似于定報紙系統的發送方,而“多”就是訂閱方。當有新的“報紙”時,發送方將最新的報紙送達訂閱方手中。發送方維護著一個訂閱方的列表。

          文中通過一個氣象站的例子來解說這個模式。WeatherData實現Subject接口,里面包括所要傳送的private 數據,還有注冊Observer和去除Observer的方法。當數據有所更新時調用measurementChanged方法,這個方法再調用notifyObservers方法。

          而在Observer那端,有一個subject對象的私有數據,通過構造函數將要注冊的Subject作為參數來對它進行初始化,以此建立ObserverSubject的聯系。

          最后還介紹了java那建的Observer模式。通過繼承Observable來成為Subject,通過實現Observer接口來成為Observer。但其有一定弊病,因為java不支持多繼承,這就限制了使用這個模式的靈活性。所以我覺得以后如果真的用到Observer模式還是自己編程比較好。

          posted on 2007-09-06 13:26 離弦之ray的技術天空 閱讀(187) 評論(0)  編輯  收藏 所屬分類: Design Pattern
          主站蜘蛛池模板: 尉犁县| 宝应县| 彭山县| 股票| 泰州市| 巍山| 公主岭市| 名山县| 麦盖提县| 怀仁县| 邵武市| 宜兰市| 通城县| 鄯善县| 额尔古纳市| 奎屯市| 宜春市| 绍兴市| 巴彦淖尔市| 安泽县| 晋州市| 江安县| 上林县| 长春市| 五家渠市| 沂南县| 恭城| 眉山市| 平谷区| 贵定县| 霍林郭勒市| 华宁县| 高平市| 万宁市| 皮山县| 宜春市| 常宁市| 泸州市| 新兴县| 芦山县| 贵港市|