主要記錄在看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: