模型-視圖-控制器模式
關注點分離(Separation of Concerns,SoC)原則是軟件工程相關的設計原則之一。SoC原則背後的思想是將一個應用切分紅不一樣的部分,每一個部分解決一個單獨的關注點。分層設計中的層次(數據訪問層、業務邏輯層和表示層等)便是關注點的例子。使用SoC原則能簡化軟件應用的開發和維護。web
模型—視圖—控制器(Model-View-Controller,MVC)模式是應用到面向對象編程的Soc原則。模式的名稱來自用來切分軟件應用的三個主要部分,即模型部分、視圖部分和控制器部分。MVC被認爲是一種架構模式而不是一種設計模式。架構模式與設計模式之間的區別在於前者比後者的範疇更廣。
模型是核心的部分,表明着應用的信息本源,包含和管理(業務)邏輯、數據、狀態以及應用的規則。視圖是模型的可視化表現。視圖的例子有,計算機圖形用戶界面、計算機終端的文本輸出、智能手機的應用圖形界面、PDF文檔、餅圖和柱狀圖等。視圖只是展現數據,並不處理數據。控制器是模型與視圖之間的連接/粘附。模型與視圖之間的全部通訊都經過控制器進行。
MVC是一個很是重要的設計模式,用於將應用組織成三個部分:模型、視圖和控制器。
每一個部分都有明確的職責。模型負責訪問數據,管理應用的狀態。視圖是模型的外在表現。視圖並不是必須是圖形化的;文本輸出也是一種好視圖。控制器是模型與視圖之間的鏈接。MVC的恰當使用能確保最終產出的應用易於維護、易於擴展。
MVC模式是應用到面向對象編程的SoC原則。
Python框架web2py使用MVC做爲核心架構理念。即便是最簡單的web2py例子也使用了MVC來實現模塊化和可維護性。Django也是一個MVC框架,但它使用的名稱是MTV。