MVC的變體
通過采用MVC模式我們可以將可視化UI元素的呈現UI處理邏輯和業務邏輯分別定義在ViewController和Model中但是對於三者之間的交互MVC並沒有進行嚴格的限制最為典型的就是允許View和Model繞開Controller進行直接交互View可以通過調用Model獲取需要呈現給用戶的數據Model也可以直接通知View讓其感知到狀態的變化當我們將MVC應用於具體的項目開發中不論是基於GUI的桌面應用還是基於Web UI的Web應用如果不對ModelView和Controller之間的交互進行更為嚴格的限制我們編寫的程序可能比自治視圖更加難以維護
今天我們將MVC視為一種模式(Pattern)但是作為MVC最初提出者的Trygve M H Reenskau卻將MVC視為一種范例(Paradigm)這可以從它在Applications Programming in Smalltalk(TM)How to use ModelViewController (MVC)中對MVC的描述可以看出來In the MVC paradigm the user input the modeling of the external world and the visual feedback to the user are explicitly separated and handled by three types of object each specialized for its task
模式和范例的區別在於前者可以直接應用到具體的應用上而後者則僅僅提供一些基本的指導方針在我看來MVC是一個很寬泛的概念任何基於ModelView和Controller對UI應用進行分解的設計都可以成為MVC當我們采用MVC的思想來設計UI應用的時候應該根據開發框架(比如Windows FormsWPF和Web Forms)的特點對ModelView和Controller的界限以及相互之間的交互設置一個更為嚴格的規則
在軟件設計的發展歷程中出現了一些MVC的變體(Varation)它們遵循定義在MVC中的基本原則我們現在來簡單地討論一些常用的MVC變體
返回目錄ASPNET MVC 框架揭秘
編輯推薦
Java程序性能優化讓你的Java程序更快更穩定
Visual C++音頻/視頻技術開發與實戰
From:http://tw.wingwit.com/Article/program/net/201311/16130.html