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

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

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

    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 閱讀(311) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 国产成人在线免费观看| 91精品免费在线观看| 亚洲国产综合精品中文字幕| 亚洲天然素人无码专区| 久久不见久久见免费影院| 亚洲av乱码一区二区三区香蕉| 99免费视频观看| 亚洲综合小说久久另类区| 1000部啪啪毛片免费看| 亚洲综合激情九月婷婷| 黄色片在线免费观看| 亚洲av无码无线在线观看| 国产精品久久免费视频| 特a级免费高清黄色片| 久久亚洲高清综合| 成人久久免费网站| 亚洲美女视频免费| 女人张腿给男人桶视频免费版| 亚洲狠狠婷婷综合久久| 亚洲狠狠爱综合影院婷婷| 在线免费观看h片| 亚洲精品乱码久久久久久下载| 青青久在线视频免费观看| 国产偷国产偷亚洲高清在线| 色噜噜AV亚洲色一区二区| 亚洲一区免费观看| 国产亚洲精品VA片在线播放| 免费一级一片一毛片| 在线观看免费黄网站| 亚洲精品免费网站| 亚洲精品tv久久久久| 午夜精品免费在线观看| 亚洲一区二区无码偷拍| 亚洲日本中文字幕一区二区三区| 久久国产免费观看精品| 久久精品国产亚洲AV蜜臀色欲| 免费人成视频在线观看视频 | 亚洲日韩小电影在线观看| 日韩中文字幕免费视频| 亚洲狠狠婷婷综合久久| 亚洲va国产va天堂va久久|