面試的時候被問到有關 mvc 的問題,雖然這塊知識點並不難,但還是總結一下,下次再遇到的話,爭取能做到侃侃而談,而不是簡簡單單把概念給複述一遍。mvc 模型代表 model - view - controller,即模型 - 檢視 - 控制器模式,從上到下依次介紹:
mvc 屬於架構模式的一種,所謂架構就是如何設計乙個程式的結構。mvc 將程式結構劃分為三層,每一層都對外提供了可供上層呼叫的介面,既能維繫三層之間的聯絡,也能保持相對的獨立性。
而每一層都有各自的職責,我們可以將同一邏輯的**聚集到乙個元件,再放到對應的層次中。檢視層作個性化的定製頁面,而無需知曉下層業務的具體實現。同樣的,控制層專心協調檢視與模型的資料互動,模型層處理業務邏輯,無需關心資料該如何顯示。
這種將業務邏輯、資料和介面分離的**組織形式,降低了模組間的耦合度,有利於日後的維護與擴充套件。
先說控制層,為什麼要把控制層單獨拎出來說呢?因為很多人都誤解了 mvc 的真正含義,他們只是把簡單地把程式劃分為三層設計,並沒有理解到 mvc 的內涵。
前面已經說了,控制層只是負載協調檢視層與模型層的資料互動,就像乙個粘合劑,把檢視層和模型層聯絡起來,除此之外再無其他。而有的程式設計師卻喜歡在控制層寫大量的業務處理**,這是十分不合適的。
如果這樣做了,那 mvc 的優勢不就被你自己親手扼殺了嗎?mvc 的核心思想是 controller 可以自由呼叫 model,model 之間的互相呼叫亦是如此,這是 mvc 的精髓所在。而 controller 之間是不可以互相呼叫的,試問此時你要如何復用 controller 中的業務**呢?
所以說各司其職很重要,不要胡亂指派任務,否則就是在給自己挖坑。
另外,很多人都知道 controller - service - dao 三層架構,其中 controller 和 service 我們可以認為就是 mvc 中的控制層和模型層。而 dao 其實不屬於 mvc,dao 封裝了訪問資料訪問的**,service 則去呼叫 dao 提供的介面來處理資料,僅此而已。
MVC 架構模式
mvc架構模式 模型 檢視 控制器 model view controller 模型 模型代表應用程式的資料以及用於訪問控制和修改這些資料的業務規則,當模型發生改變時,它會通知檢視,並為檢視提供查詢模型相關狀態的能力.同時,它也為控制器提供訪問封裝在模型內部的應用程式功能的能力.檢視 檢視用來組織模...
MVC架構模式
m model 資料管理 如資料庫訪問 v view 資料顯示 介面 c controller 控制響應策略 組成mvc的三種模式 組合模式 策略模式 觀察者模式 view層實現了組合模式 通過樹狀結構組織介面控制項物件。model和view層,實現了觀察者模式 model是被觀察的物件,view是...
MVC架構模式與xib
mvc架構模式 m model,模型,儲存資料 v view,檢視,顯示控制項及資料 c controller,控制器,傳遞資料,管理檢視 xib1 xib檔案是一種自定義檢視。2 建立方法 file new file,選擇ios user inte ce view empty。3 好處 可以先設計...