關(guān)于MVC架構(gòu)的理解

今天是開工第一天,首先呢,先祝廣大的簡友新春快樂!這也是公司版本迭代的空閑期間,沒事的時候可以看(chui)看(chui)簡(niu)書(b).

下面就來說下項目架構(gòu)的理解,以下都是自己的理解,還請各路大神高抬貴手,畢竟和氣生財,新年開工第一天,請讓我以后寫簡書更有激情.

在iOS開發(fā)中,多數(shù)的項目都是傳統(tǒng)的MVC模式,在我看來不管是什么結(jié)構(gòu)的項目,都是由MVC衍生而來的.比如MVVM,MVP,和組件化開發(fā),本文我們主要還是說下關(guān)于MVC吧!畢竟現(xiàn)在我們的項目還是MVC結(jié)構(gòu)的,只是對于整體結(jié)構(gòu)進(jìn)行了進(jìn)一步的修改,修改后的結(jié)構(gòu)有點類似于MVP.下面廢話少說,直接看圖


screen_shot_01@2x.png

在這個架構(gòu)中,我把每一個模塊都會建立一個ViewController,Controller,Model,Network.

ViewController : 繼承于UIViewController就是我們MVC架構(gòu)中的C,但是在這里雖然它繼承與UIViewController,但是我們把它看做是一個視圖類,相當(dāng)于View.
Controller: 是控制層,繼承于NSObject.是一個單利類.把controller看做是控制器,所有的邏輯層,網(wǎng)絡(luò)請求和跳轉(zhuǎn)頁面都放到這里.
Model: model還是那個model,大家熟悉的model.(但是c已經(jīng)不是那個c了)
Network: 會英文的童鞋都應(yīng)該知道,這肯定是網(wǎng)絡(luò)請求,把每個模塊的網(wǎng)絡(luò)請求都單獨寫到這里面.

    這時候有的童鞋就會問,剛剛那個controller里面不就有網(wǎng)絡(luò)請求嗎,為什么又會多出來一個network呢?!

這個network的作用就是把所有的網(wǎng)絡(luò)請求的參數(shù)都用一個方法傳到這個類里面,然后在controller里面調(diào)用這個network類中的方法,在controller里面就能夠獲取到網(wǎng)絡(luò)層返回的數(shù)據(jù)了.如圖:


screen_shot_02@2x.png

screen_shot_03@2x.png
    這就可以說明為什么把網(wǎng)絡(luò)請求再次區(qū)分一個類了吧!

controller是控制層,里面除了有網(wǎng)絡(luò)請求,數(shù)據(jù)處理還會有關(guān)于跳轉(zhuǎn)到某個頁面的方法,如上圖 screen_shot_03@2x.png.

這么做的主要原因就是:由于現(xiàn)在的項目的邏輯,需要跳轉(zhuǎn)到同一個控制器的地方比較多,在傳統(tǒng)的MVC架構(gòu)中,每當(dāng)我們從不同的控制器跳轉(zhuǎn)到同一個控制器的時候,都會寫一些重復(fù)的代碼,但是如果我們一旦進(jìn)行修改的時候我們就會發(fā)現(xiàn),需要修改的地方太多了,代碼的復(fù)用性特別低.如果我們采取這個方法,當(dāng)我們在A,C,D不同的控制器中跳轉(zhuǎn)到B控制器的時候,我們只需要調(diào)用B所在的Module的Controller中的push到B的方法即可,這樣我們便提高了代碼的復(fù)用性和可維護(hù)性.

大家覺得相比于MVC,這種對MVC的優(yōu)化怎么樣呢?

    其實看完之后,我覺得大家的第一個反應(yīng)就是,單利啊!單利會始終存在于app的生命周期中啊!會造成內(nèi)存消耗啊!為什么不把每個Controller都當(dāng)成每個控制器的一個變量呢?

個人覺得如果單利中沒有過多的成員變量等,那么就不會造成太大的內(nèi)存消耗.所以大家可以放心大膽的試試.

最后附上demo地址: https://github.com/Chris-Gaptain/CCStructDemo

好了,就到這里吧!喜歡的童鞋就贊下吧!不喜歡的童鞋只需要您的微微一笑!
希望大家能對我自己的理解給出寶貴意見(勿噴)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末榜晦,一起剝皮案震驚了整個濱河市冠蒋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芽隆,老刑警劉巖浊服,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胚吁,居然都是意外死亡牙躺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門腕扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孽拷,“玉大人,你說我怎么就攤上這事半抱∨。” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵窿侈,是天一觀的道長炼幔。 經(jīng)常有香客問我,道長史简,這世上最難降的妖魔是什么乃秀? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上跺讯,老公的妹妹穿的比我還像新娘枢贿。我一直安慰自己,他們只是感情好刀脏,可當(dāng)我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布局荚。 她就那樣靜靜地躺著,像睡著了一般愈污。 火紅的嫁衣襯著肌膚如雪耀态。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天钙畔,我揣著相機(jī)與錄音茫陆,去河邊找鬼金麸。 笑死擎析,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挥下。 我是一名探鬼主播揍魂,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棚瘟!你這毒婦竟也來了现斋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤偎蘸,失蹤者是張志新(化名)和其女友劉穎庄蹋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迷雪,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡限书,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了章咧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倦西。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赁严,靈堂內(nèi)的尸體忽然破棺而出扰柠,到底是詐尸還是另有隱情,我是刑警寧澤疼约,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布卤档,位于F島的核電站,受9級特大地震影響程剥,放射性物質(zhì)發(fā)生泄漏劝枣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哨免。 院中可真熱鬧茎活,春花似錦、人聲如沸琢唾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽采桃。三九已至懒熙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間普办,已是汗流浹背工扎。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留衔蹲,地道東北人肢娘。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像舆驶,于是被迫代替她去往敵國和親橱健。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容