天天看點

模型和視圖分離原則

該原則至少具有兩部分:

1. 不要将非UI對象直接與UI對象連接配接或耦合。例如,不要讓Sale軟體對象(非UI“領域對象”)引用Java Swing JFrame視窗對象。因為視窗與某個應用相關,而(理想情況下)非視窗對象可以在新應用中重用或附加到新界面。

2. 不要在UI對象方法中加入應用邏輯(例如稅金的計算)。UI對象應該隻初始化UI元素、接受UI事件(例如滑鼠點選按鈕)、将應用邏輯的請求委派到非UI對象(例如領域對象)。
           

模型-視圖分離原則規定,模型(領域)不應該與視圖(UI)對象連接配接。例如,Register或Sale對象不應該直接向GUI對象,ProcessSaleFrame發送,請求其顯示,改變顔色,關閉等。

觀察者模式(O’bserver)模式是該原則的合理擴充,即領域對象隻能PropertyListener(java中的常用接口)的接口向視圖的UI對象發送消息。基于該模式,領域對象不知道UI對象的存在。領域對象隻把消息發送給了實作了PropertyListener接口的對象,該更進一步的應用,領域對象封裝了與應用邏輯相關的資訊和行為。視窗類相對簡單,負載輸入,輸出,以及捕獲GUI事件,但是并不應用資料和應用邏輯。

模型-視圖分離的動機包括:

  • 支援内聚的模型定義,這些定義隻關注領域過程,而不是使用者界面。
  • 許對模型和使用者界面層分别進行開發。
  • 是界面的需求變更對領域層的影響最小化。
  • 允許新視圖能夠被友善地連接配接到現有的領域層之上,而不會對領域層産生影響。
  • 允許對同一模型對象同時使用多個視圖,例如銷售- 資訊同時具有表格和業務圖表視圖。
  • 允許模型層的運作不依賴于使用者界面層,例如,消息處理或批處理模式的系統。
  • 允許簡模型層能夠簡便地移植到另一使用者接口架構下。

作者:glowd

原文:

https://blog.csdn.net/zengqiang1/article/details/52710985

版權聲明:本文為部落客原創文章,轉載請附上博文連結!

繼續閱讀