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的困難。?
轉載于:https://www.cnblogs.com/6354-aa/p/9100795.html