iOS 組件模塊化方案(路由)CTMediator

前言:
在之前的文章中梳侨,我有介紹過.a和 .framework 的封裝,算是為你的組件模塊打個基礎(chǔ)吧添坊。當你將你的功能塊封裝后使用起來是不是很方便呢太伊。那么在開發(fā)過程中雇锡,你是否有遇到過這樣的情況:不論是方法的調(diào)用、數(shù)據(jù)的傳參僚焦,相同的方法或者相同的參數(shù)塊在多處調(diào)用锰提,而給你的項目帶來了過多的冗余。那么你是否想過如何減少你項目的耦合問題呢芳悲?
舉個簡單的例子吧立肘,比如:你有一個對象,這個對象你需在多個控制器或者view中調(diào)用名扛,最常見到的就是地圖的定位了吧谅年。那么你之前一定有使用過單例霍弹,這個就是一個很好的解決方法或杠。那么控制器呢,相同問題當你的控制器需要在整個項目中作為一個“單例”呢乍狐?
在開發(fā)過程中弄企,model的概念大家一定很熟悉超燃,一個參數(shù)攜帶者-對象。如果你對你的項目內(nèi)存有極高的強迫癥的話桩蓉,你也許像我一樣這么做過:平時的項目中淋纲,請求的數(shù)據(jù)量級并不大,使你覺得沒有必要去做一個model院究,而是直接在你的控制器中洽瞬,對取得的數(shù)據(jù)進行了處理。(其實业汰,也和習慣有關(guān)系吧伙窃,哈哈。)那么样漆,當數(shù)據(jù)量大到你頭疼的時候为障,model就是必不可少的了,常用mjExcetion的人應該會有體會放祟。model的使用鳍怨,每個開發(fā)人員都再熟悉不過了,可是你有仔細想過它嗎跪妥?你是否在MVC的模式中鞋喇,從未走出過呢?你的首頁MVC中的model眉撵,有沒有想過也放到其它的地方去呢侦香?不錯,你首頁的modle它只是一個數(shù)據(jù)攜帶者纽疟,一個object而已罐韩。那么,不論你將它導入到哪里污朽,當它攜帶了你需要的參數(shù)時散吵,它就是你需要的對象。
講到這里蟆肆,我覺得可以開始今天的正文了:組件模塊化错蝴。關(guān)于iOS模塊化開發(fā)的文章有很多,大概有3個方案:

  • Protocol注冊方案
  • URL注冊方案
  • Target-Action runtime調(diào)用方案

對于1和2中的方案颓芭,大家可以自己去查查吧顷锰。我也是看了他人的文章的,自覺還不夠拿來說的亡问」僮希可以給大家推薦一篇吧,附帶demo的感覺不錯州藕。(http://www.reibang.com/p/2cb4cc8d216e
至于第3個方案束世,倒是恰好有在項目中接觸到,將個人的一些經(jīng)驗和理解講出來吧床玻。即作為個人的筆記毁涉,也供大家查看。
本文主要以CTMediator來講解锈死。

一:模塊化開發(fā)理解

1.作用:
如果你的項目中有一個首頁控制器HomeVC贫堰,當你在一個子控制器(例如穆壕,訂單詳情控制器)中,需要調(diào)用它時其屏,通常的做法是直接將HomeVC import進來喇勋,然后調(diào)用≠诵校可是當我們的項目中有大量的HomeVC導入時川背,耦合太高。那么有什么方法可以簡潔化呢蛤袒?CTMediator熄云。
2.CTMediator可以看作是一個target+action的對象,將你要處理的對象打標簽妙真、加動作缴允,然然后通過Runtime處理,來達到降低耦合的目的隐孽。如果你將它看作一個model癌椿,那么它就是一個打了tag加了action的參數(shù)攜帶者,而它的處理過程中的每條映射都可以看作是一條路由菱阵。

二:實施:

1.將CTMediator導入項目中踢俄,然后新建一個控制器RouteVC(會被多處調(diào)用);
2.創(chuàng)建Target_xxx對象晴及,并設(shè)置傳值方法Action_xxx都办;
3.創(chuàng)建CTMediator的類目,構(gòu)建路由虑稼,創(chuàng)建實現(xiàn)路由的方法琳钉;
4.在需要調(diào)用RouteVC的控制器中,導入3中的類目蛛倦,使用CTMediator的路由方法歌懒。

具體步驟,和詳細解釋溯壶,可以查看demo及皂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市且改,隨后出現(xiàn)的幾起案子验烧,更是在濱河造成了極大的恐慌,老刑警劉巖又跛,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碍拆,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機感混,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門端幼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浩习,你說我怎么就攤上這事静暂〖们穑” “怎么了谱秽?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長摹迷。 經(jīng)常有香客問我疟赊,道長,這世上最難降的妖魔是什么峡碉? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任近哟,我火速辦了婚禮,結(jié)果婚禮上鲫寄,老公的妹妹穿的比我還像新娘吉执。我一直安慰自己,他們只是感情好地来,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布戳玫。 她就那樣靜靜地躺著,像睡著了一般未斑。 火紅的嫁衣襯著肌膚如雪咕宿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天蜡秽,我揣著相機與錄音府阀,去河邊找鬼。 笑死芽突,一個胖子當著我的面吹牛试浙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寞蚌,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼田巴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了睬澡?” 一聲冷哼從身側(cè)響起固额,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎煞聪,沒想到半個月后斗躏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年啄糙,在試婚紗的時候發(fā)現(xiàn)自己被綠了笛臣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡隧饼,死狀恐怖沈堡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情燕雁,我是刑警寧澤诞丽,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站拐格,受9級特大地震影響僧免,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捏浊,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一懂衩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧金踪,春花似錦浊洞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至姐军,卻和暖如春铁材,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奕锌。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工著觉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惊暴。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓饼丘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辽话。 傳聞我的和親對象是個殘疾皇子肄鸽,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353