design pattern MVC 與 MVVM

主要記錄在看zk教練時所作的筆記

MVC

ㄧ般指把系統分為Model(資料庫操作相關的)、View(畫面顯示相關)、Controller(連接MV),

ZK借用這個詞來指稱「直接透過API來控制元件」的設計模式。

優點:

  • 簡單易懂:類似Swing的概念,以元件為基礎,事件驅動,開發上就是時接呼叫元件API進行改動。

缺點:

  • 不易自動化Controller:為了控制元件,Controller需要宣告許多ZK元件型態的變數,才能控制畫面,而這些元件是ZK framework執行時期塞入Controller,若無啟動server與瀏覽器則不易測試。
  • Controller易受畫面變化而修改:Controller包含ZK元件,因為畫面zul所寫的元件跟Controller有一對ㄧ關係,畫面更改更換元件,Controller也需跟著修改。

MVVM

VM代表的是ViewModel為另ㄧ種型式的控制器,在這個模式下不需要呼叫元件API來控制畫面,而是「透過資料繫結 data binding」,ViewModel扮演的方式是被動的,它儲存以下兩者

畫面狀態(state):存在class成員變數中,ex.輸入使用者名稱,則存在VM宣告String name來存

命令(command):透過方法實作業務邏輯

優點:

  • ViewModel不易受畫面變動影響
  • 重用性較高
  • ViewModel較易於測試
  • 較有利於響應式網頁
  • 可同時開發畫面與ViewModel

缺點:

  • 前期需瞭解MVVM行為

Reference: