模型-檢視-控制器(model-view-controller,mvc)是xerox parc在20世紀80年代為程式語言smalltalk-80發明的一種軟體設計模式,至今已廣泛應用於使用者互動應用程式中。在
ios開發中
mvc的機制被使用的淋漓盡致,充分理解
ios的
mvc模式,有助於我們程式的組織合理性。
模型物件
模型物件封裝了應用程式的資料,並定義操控和處理該資料的邏輯和運算。例如,模型物件可能是表示遊戲中的角色或位址簿中的聯絡人。使用者在檢視層中所進行的建立或修改資料的操作,通過控制器物件傳達出去,最終會建立或更新模型物件。模型物件更改時(例如通過網路連線接收到新資料),它通知控制器物件,控制器物件更新相應的檢視物件。
檢視物件
檢視物件是應用程式中使用者可以看見的物件。檢視物件知道如何將自己繪製出來,並可能對使用者的操作作出響應。檢視物件的主要目的,就是顯示來自應用程式模型物件的資料,並使該資料可被編輯。儘管如此,在 mvc 應用程式中,檢視物件通常與模型物件分離。
在ios應用程式開發中,所有的控制項、視窗等都繼承自 uiview,對應mvc中的v。uiview及其子類主要負責ui的實現,而uiview所產生的事件都可以採用委託的方式,交給uiviewcontroller實現。
控制器物件
在應用程式的乙個或多個檢視物件和乙個或多個模型物件之間,控制器物件充當媒介。控制器物件因此是同步管道程式,通過它,檢視物件了解模型物件的更改,反之亦然。控制器物件還可以為應用程式執行設定和協調任務,並管理其他物件的生命週期。
控制器物件解釋在檢視物件中進行的使用者操作,並將新的或更改過的資料傳達給模型物件。模型物件更改時,乙個控制器物件會將新的模型資料傳達給檢視物件,以便檢視物件可以顯示它。
對於不同的uiview,有相應的uiviewcontroller,對應mvc中的c。例如在ios上常用的uitableview,它所對應的controller就是uitableviewcontroller。
model和view永遠不能相互通訊,只能通過controller傳遞。
controller可以直接與model對話(讀寫呼叫model),model通過notification和kvo機制與controller間接通訊。
controller可以直接與view對話,通過outlet,直接操作view,outlet直接對應到view中的控制項,view通過action向controller報告事件的發生(如使用者touch我了)。controller是view的直接資料來源(資料很可能是controller從model中取得並經過加工了)。controller是view的**(delegate),以同步view與controller。
iOS開發之理解iOS中的MVC設計模式
模型 檢視 控制器 model view controller,mvc 是xerox parc在20世紀80年代為程式語言smalltalk 80發明的一種軟體設計模式,至今已廣泛應用於使用者互動應用程式中。在ios開發中mvc的機制被使用的淋漓盡致,充分理解ios的mvc模式,有助於我們程式的組織...
iOS開發之理解iOS中的MVC設計模式
模型 檢視 控制器 model view controller,mvc 是xerox parc在20世紀80年代為程式語言smalltalk 80發明的一種軟體設計模式,至今已廣泛應用於使用者互動應用程式中。在ios開發中mvc的機制被使用的淋漓盡致,充分理解ios的mvc模式,有助於我們程式的組織...
iOS開發之理解iOS中的MVC設計模式
模型 檢視 控制器 model view controller,mvc 是xerox parc在20世紀80年代為程式語言smalltalk 80發明的一種軟體設計模式,至今已廣泛應用於使用者互動應用程式中。在ios開發中mvc的機制被使用的淋漓盡致,充分理解ios的mvc模式,有助於我們程式的組織...