對iOS開發(fā)中MVC模式的理解

歡迎訪問我的博客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通信方式

多個MVC的協(xié)作

MVC的堆疊可以構(gòu)成一個復雜的應用 如圖所示:

多個MVC的協(xié)作

感謝您的閱讀,一起學習,一起成長,加油!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容