重構手法23:Duplicate Observed Data (複製“被監視資料”)

來源:互聯網
上載者:User

 

你有一些領域資料置身於GUI控制項中,而領域函數需要訪問這些資料。將該資料複製到一個領域對象中。建立一個Observer模式,用以同步領域對象和GUI對象內的重複資料。

動機:一個分層良好的系統,應該將處理使用者介面和處理商務邏輯的代碼分開。之所以這樣做,原因有以下幾點:1)你可能需要使用不同的使用者介面來表現相同的商務邏輯,如果同時承擔2種責任,使用者介面會變得過分複雜;2)與GUI隔離後,領域對象的維護和演化都會更容易,你甚至可以讓不同的開發人員負責不同部分的開發。

       儘管可以輕鬆地將“行為”劃分到不同部位,“資料”卻往往不能如此。同一項資料可能既需要內嵌於GUI控制項,也需要儲存於領域模型裡。自從MVC模式出現後,使用者介面架構都使用多層系統來提供某種機制,使你不但可以提供這類資料,並保持它們同步。

       如果你遇到的代碼是以2層方式開發,商務邏輯被內嵌於使用者介面之中,你就有必要將行為分離出來。其中的主要工作就是函數的分解和搬移。但資料就不同了;你不能僅僅只是移動資料,必須將它複製到新的對象中,並提供相應的同步機制。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.