ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          作法(Mechanics)
            • 修改presentation class,使其成為domain classObserver[GoF]。
                • ==》如果尚未有domain class,就建立一個。
                • ==》如果沒有[從presentation class到domain class]的關聯性(link),就將domain class保存于presentation class的一個值域中。
            • 針對GUI class內的domain data,使用Self Encapsulate Field(171)。
            • 編譯,測試。
            • 在事件處理函數(event handler)中加上對設值函數(setter)的調用,以[直接訪問方式]更新GUI組件。
                • ==》在事件處理函數中放一個設值函數(setter),利用它將GUI組件更新為domain data的當前值。當然這其實沒有必要,你只不過是拿它的值設定它自己。但是這樣使用setter,便是允許其中的任何動作得以于日后被執行起來,這是這一步驟的意義所在。
                • ==》進行這個改變時,對于組件,不要使用取值函數(getter),應該采取[直接取用]方式,因為稍后我們將修改取值函數(getter),使其從domain object(而非GUI組件)取值。設值函數(setter)也將遭受類似修改。
                • ==》確保測試代碼能夠觸發新添加的事件處理(event handling)機制。
            • 編譯,測試。
            • 在domain class中定義數據及其相關訪問函數(accessors)。
                • ==》確保domain class中的設值函數(setter)能夠觸發Observer模式的通報機制(notify mechanism)。
                • ==》對于被觀察(被監視)的數據,在domain class中使用[與presentation class所用的相同型別](通常是字符串)來保存。后續重構中你可以自由改變這個數據型別。
            • 修改presentation class中的訪問函數(accessors),將它們的操作對象改為domain object(而非GUI組件)。
            • 修改observer的update(),使其從相應的domain object中將所需數據拷貝給GUI組件。
            • 編譯,測試。
          posted on 2005-09-07 12:19 ivaneeo 閱讀(305) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 清徐县| 娱乐| 吐鲁番市| 宜良县| 萨嘎县| 壤塘县| 太康县| 景谷| 武鸣县| 长兴县| 渝中区| 三河市| 儋州市| 兴文县| 尖扎县| 嫩江县| 余江县| 剑阁县| 威远县| 教育| 和田市| 海兴县| 额尔古纳市| 五莲县| 灵山县| 江津市| 青州市| 阜南县| 正宁县| 石嘴山市| 武定县| 五河县| 博乐市| 桐柏县| 宣化县| 卢氏县| 聂荣县| 沿河| 枞阳县| 临高县| 嘉峪关市|