歡迎訪問我的博客muhlenXi,該文章出自我的博客。
版權(quán)聲明:本文為muhlenXi原創(chuàng)文章,轉(zhuǎn)載請注明出處,未經(jīng)允許不得轉(zhuǎn)載.
前言:
MVC,全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。
學習貴在記錄和總結(jié)收獲!點擊閱讀全文了解更多!
正文:
MVC是什么?
MVC是一個基本機制,用于將程序中的所有對象拆分到三個陣營(三層)的一個陣營中。第一層是Model,第二層是View,第三層是Controller。
Model = 你的應用是什么?
Controller = 控制 Model 如何顯示在屏幕上。
View = 你的控制器的元素,用于構(gòu)成界面。
MVC是如何通信的?
Controller -> Model
Controller 對 Model有完全訪問權(quán)限。
Model -> Controller
Model 通過
Notification & KVO的方式與Controller通信。
Controller -> View
Controller 對 View 也有完全的訪問權(quán)限。如:Controller擁有一個outlet屬性,該屬性指向View中的對象。
View -> Controller
View 通過
action-target的方式與Controller通信。如:button的點擊
View 還通過
Delegate的方式與Controller通信。
數(shù)據(jù)不能作為視圖的內(nèi)部屬性。它是通過
data source delegate的方式與Controller通信的。也就是說,Controller從Model中獲取數(shù)據(jù)然后傳遞給View。
Model <-> View
Model和View不能相互通信。是完全獨立的。
通過下圖,我們可以很好的理解他們之間的通信方式。
多個MVC的協(xié)作
MVC的堆疊可以構(gòu)成一個復雜的應用 如圖所示:
感謝您的閱讀,一起學習,一起成長,加油!