1 MVC的實現
1.1 分析應用問題,對系統進行分離
分析應用問題,分離出系統的內核功能、對功能的控制輸入、系統的輸出行爲三大部分。設計模型部件使其封裝內核數據和計算功能,提供訪問顯示數據的操做,提供控制內部行爲的操做以及其餘必要的操做接口。以上造成模型類的數據構成和計算關係。這部分的構成與具體的應用問題緊密相關。
1.2 設計和實現每一個視圖
設計每一個視圖的顯示形式,它從模型中獲取數據,將它們顯示在屏幕上。
1.3 設計和實現每一個控制器
對於每一個視圖,指定對用戶操做的響應時間和行爲。在模型狀態的影響下,控制器使用特定的方法接受和解釋這些事件。控制器的初始化創建起與模型和視圖的聯繫,而且啓動事件處理機制。事件處理機制的具體實現方法依賴於界面的工做平臺。
1.4 使用可安裝和卸載的控制器
控制器的可安裝性和可卸載性,帶來了更高的自由度,而且幫助造成高度靈活性的應用。控制器與視圖的分離,支持了視圖與不一樣控制器結合的靈活性,以實現不一樣的操做模式,例如對普通用戶、專業用戶、或不使用控制器創建的只讀視圖。這種分離還爲在應用中集成新的I/O設備提供了途徑。
2 MVC的變化
把模型、視圖、控制器實行分離,使設計和使用有了很大靈活性。可是,在現實中,視圖和控制器的功能一般是緊密地聯繫在一塊兒的。控制視圖工做的輸入事件一般都是與視圖的構成相關的。在現實界面設計環境中,界面操做事件及其處理都是與界面形式設計緊密關聯的。在這種狀況下,把視圖和控制器分離開,就給分析和設計帶了了不方便,而且運行的效率低。
所以,能夠把視圖和控制器結合起來加以設計和實現。在上面的實現說明中,只要把視圖和控制器的類合併生成新的視圖類便可。這樣,仍然保持着與模型的分離,所以相同的模型仍然可使用多個視圖。這些視圖自己已經具有了事件處理能力,仍然能夠經過模型對其功能進行控制。
3 MVC的優勢及不足之處
3.1 MVC的優勢
MVC的優勢表如今如下幾個方面:
(1) 能夠爲一個模型在運行時同時創建和使用多個視圖。變化-傳播機制能夠確保全部相關的視圖及時獲得模型數據變化,從而使全部關聯的視圖和控制器作到行爲同步。
(2) 視圖與控制器的可接插性,容許更換視圖和控制器對象,並且能夠根據需求動態的打開或關閉、甚至在運行期間進行對象替換。
(3) 模型的可移植性。由於模型是獨立於視圖的,因此能夠把一個模型獨立地移植到新的平臺工做。須要作的只是在新平臺上對視圖和控制器進行新的修改。
(4) 潛在的框架結構。能夠基於此模型創建應用程序框架,不只僅是用在設計界面的設計中。
3.2 MVC的不足之處
MVC的不足表如今如下幾個方面:
(1) 增長了系統結構和實現的複雜性。對於簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增長結構的複雜性,並可能產生過多的更新操做,下降運行效率。
(2) 視圖與控制器間的過於緊密的鏈接。視圖與控制器是相互分離,但確實聯繫緊密的部件,視圖沒有控制器的存在,其應用是頗有限的,反之亦然,這樣就妨礙了他們的獨立重用。
(3)視圖對模型數據的低效率訪問。依據模型操做接口的不一樣,視圖可能須要屢次調用才能得到足夠的顯示數據。對未變化數據的沒必要要的頻繁訪問,也將損害操做性能。
(4) 目前,通常高級的界面工具或構造器不支持MVC模式。改造這些工具以適應MVC須要和創建分離的部件的代價是很高的,從而形成使用MVC的困難。 框架