🎯 什麼情境該想到我
當你「想把輸入處理、畫面顯示、資料與邏輯三者分離,讓它們各自獨立變動」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:把使用者介面拆成三個角色,降低耦合、便於各自替換與測試。
做法要點:
- 模型(Model):領域資料與邏輯,不知道 UI 的存在。
- 視圖(View):把模型呈現到畫面,只負責顯示。
- 控制器(Controller):處理使用者輸入,操作模型並選擇要顯示的視圖。
- 關鍵是把「輸入的處理」(控制器)和「輸出的呈現」(視圖)分開。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 對很簡單的畫面而言,三分拆會顯得過度。
- 原始的視圖觀察模型機制在 Web 無狀態環境下未必適用(多改為請求驅動)。
- 團隊需理解職責邊界,否則邏輯容易又漏回視圖或控制器。
🔗 相關工具
- 頁面控制器 Page Controller(實作控制器角色的一種方式)
- 前端控制器 Front Controller(實作控制器角色的另一種方式)
- 樣板視圖 Template View(實作視圖角色的常見手法)
- 企業應用架構模式