淺析MVC和說媒的過程,淺析MVC說媒過程
什麼是MVC?
MVC 全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種商務邏輯、資料、介面 顯示分離的方法組織代碼,將商務邏輯聚集到一個組件裡面,在改進和個人化定製介面及使用者互動的同時,不需要重新編寫商務邏輯。
圖解MVC(斯坦福公開課的課件)
看了上面的MVC定義和圖解,對MVC有了初步的瞭解,特別是斯坦福這個課件,講的非常到位。但是在實際開發過程中,卻感覺離MVC的標準越來越遠。
我也看過一些朋友寫的iOS項目,看之前問MVC,都講的頭頭是道,但是在項目中卻體現的不是那麼好。我自己寫項目也是,理論上是理解了MVC的模式,但是真去寫代碼,還是覺得,有些地方不到位。
特別是C(我們就把UIViewController當做C來看,網上有對C的其他解釋)顯得別急臃腫。有時候C裡面代碼幾千行(並不是說代碼過千就是不符合MVC),C幹了很多M乾的事,同時也幹了很多V要乾的事。
這幾天我看了一個項目(AFNetworking的作者寫的DEMO,大家可以到github上下載),覺得MVC用的非常到位。每一步都是很周到,M和C的對接,V和C的對接,做到非常到位。
對於MVC,我說說我的理解,俗一點講:媒婆說沒得過程。M -> 男人 , V -> 女人 , C -> 媒婆。
C(媒婆) 要給 M(男人) 介紹個女朋友 V (女人),C 是一個橋樑起著對接的作用, M 和 V 本是不認識的兩個人,不能直接溝通。
說媒過程是這樣的:C 給 M 說,第一次見女孩子,你要給女孩子準備什麼礼物吧?
這個時候,M 肯定不會說,這點小事,你還來麻煩我,自己去買吧,那估計媒婆氣都氣死了,這事肯定成不了。(寫代碼的時候,不要讓C幹M得事)
這事必須 M 自己去做,M 買東西就是處理資料得過程。買東西怎麼去買?多少錢?怎麼講價?這都是 M 自己要去乾的事。最終結果是 M 買來礼物,礼物就是我們編程過程中 Model所產生的對象。
礼物買來了,M 也不認識 V ,肯定也不知道怎麼送給 V,所以這個時候 C 的作用就體現出來了,M 要把 買來的礼物(Object)交給C,讓C幫忙送給 V。
就這樣,V 拿到礼物,覺得不錯,就自己用了。
回想一下這個過程:C 發起一個請求,買礼物。M 知道之後,就去執行這件事,最終買來礼物。M 脫 C 把礼物送給V。一個完整的請求資料,展示資料的過程。
雖然有點俗,但是還是有一定道理的。
後面時間允許的話,我會詳解一下AFNetworking的作者寫的DEMO。看看MVC在項目的體現到底是什麼樣的。
我的公眾號 iOS開發 : iOSDevTip