Cocoa編程學習 MVC學習基礎是本文要介紹內容,Cocoa 使用了一種修改版本的MVC模式來處理GUI的顯示。MVC模式自1979年以來)已經出現很長時間了,它皆在分離顯示使用者介面所需的大量任務,並處理使用者互動。正如名稱所蘊含的,MVC具有三個主要部分,Model模型)、View視圖)和Controller控制器):
模型——模型是特定於領域的資料表現形式。比如說,我們正在建立一個工作清單應用程式。你可能會有一個Task對象的集合,書寫為List<Task>。 你或許把這些資料儲存在資料庫、XML檔案,或者甚至從Web Service中得到,不過MVC不那麼關心它們是在何處/如何來持久儲存的乃至它們是什麼)。相反,它特別專註於如何顯示這些資料,並處理與使用者互動的,好的模型類不包括任何有關使用者介面的內容,可以在多個應用程式中使用。
視圖——視圖代表了資料如何實際地顯示出來。在我們這個假設的任務應用程式中,會在一個網頁以HTML的方式)中來顯示這些任務,也會在一個WPF頁面中以XAML的方式)來顯示,或者在一個iPhone應用程式中顯示為UITableView 。如果使用者點擊某個任務,要刪除之,那麼視圖通常會觸發一個事件,或對Controller控制器)進行一個回調,好的視圖類是通用類,可以在多個應用中使用。
控制器——控制器是模型和視圖間的粘合劑,負責控制整個應用的流程。控制器的目的就是擷取模型中的資料,告知視圖來顯示。控制器還偵聽著視圖的事件,在使用者選中一個任務來刪除的時候,控制著任務從模型中刪除。
通過分離顯示資料、持久化資料和處理使用者互動的職責,MVC模式有助於建立易於理解的代碼。而且,它促進了視圖和模型的解耦,以便模型能被重用。例如,在你的應用程式中,有兩個介面,基於Web的和WPF的,那麼你可以在兩者中都使用同樣的模型定義代碼。
因而,在很多MVC架構中不管具體的工作方式如何,基本原理都大致如此的。然而,在Cocoa及Cocoa Touch)中,還是或多或少有所不同,蘋果用MVC來代表Views視圖)、View Controller視圖控制器)和Models模型);但是在不同的控制項中,它們卻不是完全一致的,實現的方式也不太一樣。
在Objective-C/Cocoa的世界裡,我們建立的controller通常是指應用程式Application)的委託Delegate),或者可以簡單稱做app delegate。當你在Objective-C裡面建立一個app delegate的時候,這個delegate可以做為你所有model和view的controller,或者你也可以為不同的model和view分別建立controller。
小結:Cocoa編程學習 MVC學習基礎 的內容介紹完了,希望本文對你有所協助!
參考:MonoTouch中的MVC簡介。地址:http://www.infoq.com/cn/articles/monotouch-mvc