iOS架構(gòu)設(shè)計-項目實戰(zhàn)

有時候會聽人說,每個項目的架構(gòu)設(shè)計都不一樣伏伐,但我想說 相似的項目 架構(gòu)是可以相似的宠进,

今天我只想說說我自己開發(fā)中,整個項目的設(shè)計藐翎。僅供大家參考材蹬,如果說的有不足的 ,也請大家提出吝镣,共同進(jìn)步堤器。??

現(xiàn)在的架構(gòu)設(shè)計一般是 MVC,MVP末贾,MVVM闸溃,VIPER,雖然知道 他們是什么,但是在實際項目里 不能完全按照這些比葫蘆畫瓢拱撵,有些配置呀辉川,網(wǎng)絡(luò)請求呀,不同項目之間的通用類還是沒有說明拴测。

demo


demo.png
一 乓旗,不用設(shè)計

剛開始做項目的時候,連model 都不會用昼扛,數(shù)據(jù)操作 全部 用NSdictionary 寸齐,導(dǎo)致 里面很亂欲诺,改個數(shù)據(jù)也特別的麻煩,找數(shù)據(jù) 還要撥開 好幾層渺鹦;
而且 邏輯扰法,網(wǎng)絡(luò)請求 都沒有封裝 全部放在viewController 里。不同viewController 下相似的邏輯毅厚,代碼全是重復(fù)的塞颁。導(dǎo)致ViewContrller 里很亂 很雜,找問題的時候 也不容易定位吸耿,哈哈祠锣,不知道大家有過類似的情況沒!


image.png

二咽安,MVC

慢慢的學(xué)會了用MVC伴网,以為整個項目的Model 都要放到Model 文件夾下,項目所有的Controller 都要放到Controller 文件夾下妆棒,項目所有的View 都放到View 文件夾下澡腾,當(dāng)項目小的時候還可以。項目大了的話糕珊,Controller 动分,Model ,View 會越來越大红选,找某個Controller 對應(yīng)的View 的時候 也特別難澜公,特別是以前開發(fā)的人員離職了,或者是自己很久以前寫的代碼的時候喇肋,就更難了坟乾。

image.png

三, MVVM + 三層架構(gòu)

慢慢的又學(xué)了 MVVM苟蹈,三層架構(gòu)(界面層糊渊、業(yè)務(wù)邏輯層右核、數(shù)據(jù)訪問層)慧脱。因為實際項目中都是比較大的,所以我分模塊劃分贺喝,如 Home 模塊 又分為 Controller,View,Model,Logic(邏輯層),API(網(wǎng)絡(luò)請求層)菱鸥。
Logic(業(yè)務(wù)邏輯層):其目的就是為了給Controller 減負(fù)。把一些邏輯稍微復(fù)雜躏鱼,或者可以共用的邏輯氮采,放在此處。比如購物車商品中 實際價錢的計算染苛。單獨(dú)封裝 會邏輯更清晰鹊漠。
API(網(wǎng)絡(luò)請求層):大家眾所周知 項目中的網(wǎng)絡(luò)請求是很多的主到,一般你們都放到哪里呢? Controller ? ,ViewModel 躯概? Model 層登钥? 我習(xí)慣單獨(dú)建個文件去進(jìn)行網(wǎng)絡(luò)請求,因為 網(wǎng)絡(luò)請求后 還會做處理娶靡,比如 網(wǎng)絡(luò)請求的都是json, 要把對應(yīng)的json 轉(zhuǎn)成 我們所需要的Model 牧牢。

image.png

四,我的最終版 ( MVVM + 三層架構(gòu) + 其他 )

Global:但是 項目中 還有一些其他的東西姿锭,比如用戶登錄后塔鳍,要記錄用戶的信息,而且 很多地方都要用到這個用戶信息呻此,那怎么辦呢轮纫?他不屬于任何一個module ,那就放到最外層焚鲜。
Util:一些通用的工具類


image.png
image.png

五. 項目數(shù)據(jù)傳遞流程

項目結(jié)構(gòu).png

當(dāng)然 Cocoapods 是必不可少的蜡感,這個我就不再贅述。

有不同的見解請留言恃泪。

有感觸的好貼:http://www.reibang.com/p/15e5b83ab70e

demo.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郑兴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贝乎,更是在濱河造成了極大的恐慌情连,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件览效,死亡現(xiàn)場離奇詭異却舀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锤灿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門挽拔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人但校,你說我怎么就攤上這事螃诅。” “怎么了状囱?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵术裸,是天一觀的道長。 經(jīng)常有香客問我亭枷,道長袭艺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任叨粘,我火速辦了婚禮猾编,結(jié)果婚禮上瘤睹,老公的妹妹穿的比我還像新娘。我一直安慰自己答倡,他們只是感情好默蚌,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著苇羡,像睡著了一般绸吸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上设江,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天锦茁,我揣著相機(jī)與錄音,去河邊找鬼叉存。 笑死码俩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的歼捏。 我是一名探鬼主播稿存,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瞳秽!你這毒婦竟也來了瓣履?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤练俐,失蹤者是張志新(化名)和其女友劉穎袖迎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腺晾,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡燕锥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悯蝉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片归形。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鼻由,靈堂內(nèi)的尸體忽然破棺而出暇榴,到底是詐尸還是另有隱情,我是刑警寧澤嗡靡,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布跺撼,位于F島的核電站窟感,受9級特大地震影響讨彼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柿祈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一哈误、第九天 我趴在偏房一處隱蔽的房頂上張望哩至。 院中可真熱鬧,春花似錦蜜自、人聲如沸菩貌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箭阶。三九已至,卻和暖如春戈鲁,著一層夾襖步出監(jiān)牢的瞬間仇参,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工婆殿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诈乒,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓婆芦,卻偏偏與公主長得像怕磨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子消约,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361