關(guān)于iOS面向協(xié)議編程—解藕

首先說(shuō)一說(shuō)解藕的思想巡语。說(shuō)白了就是把某些可以獨(dú)立出來(lái)的模塊拿出來(lái)看做單獨(dú)app開(kāi)發(fā)。分别。遍愿。把一個(gè)大團(tuán)隊(duì) 分解成小團(tuán)隊(duì)。便于管理提高效率耘斩。

那言歸正傳沼填,思想呢 就是有多對(duì)多(網(wǎng)狀結(jié)構(gòu))分解成多對(duì)一(輻射結(jié)構(gòu))

其中方案很多。今天我們來(lái)一起探討下面對(duì)協(xié)議編程思想的結(jié)構(gòu)方式括授。

備用知識(shí)請(qǐng)查看下OC的運(yùn)行時(shí)runtime中消息轉(zhuǎn)發(fā)的forwardingTargetForSelector方法坞笙。

其中核心就是把所有需要的類都用一個(gè)類來(lái)代替,然后用這個(gè)類調(diào)用的方法荚虚。當(dāng)然這個(gè)代替的類并沒(méi)有實(shí)現(xiàn)這個(gè)類調(diào)用的方法薛夜。就會(huì)調(diào)用消息轉(zhuǎn)發(fā)forwardingTargetForSelector。我們?cè)趂orwardingTargetForSelector方法中給這個(gè)類的方法的實(shí)現(xiàn)曲管。

為代碼

例如[loginObj login]; ?[logoutObj logout]却邓;

轉(zhuǎn)化后[<@protocol>publicObj login]; [<@protocol>publicObj logout];

然后publicObj沒(méi)有實(shí)現(xiàn)login方法。我們就會(huì)在 publicObj forwardingTargetForSelector 中為此方法實(shí)現(xiàn)院水。

說(shuō)到這感覺(jué)可能還是比較模糊腊徙。简十。那么我們來(lái)寫個(gè)demo 上代碼!

首先是一個(gè)單例基類MBaseInterface.h


然后是MBaseInterface.m


在app delegate中注冊(cè)你要加載的模塊

然后

主要就是給interface.iml復(fù)制給相關(guān)的<protocol>類(其中該類中實(shí)現(xiàn)protocol里面的方法)

準(zhǔn)備工作做完后:我們來(lái)看看調(diào)用吧

首先拿到

寫個(gè)宏先

第一句話是拿到模塊管理類(單例)

第二句話是通過(guò)模塊管理類拿到模塊

第三句話是通過(guò)協(xié)議名字拿到iface(是上一段代碼字典的反操作)

//2016.9.5 注釋上面一行撬腾,改用如下解耦的方式

GETIFACE(iface, MDownloadManagerProtocol, DownLoadModuleName);

[iface aSelector]

這樣就可以了C!由于時(shí)間原因 暫時(shí)寫這么多?

寫的還不夠清晰民傻。胰默。還有有不明白的可以留言 我會(huì)即時(shí)回復(fù) 一起學(xué)習(xí)探討!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漓踢,一起剝皮案震驚了整個(gè)濱河市牵署,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喧半,老刑警劉巖奴迅,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異挺据,居然都是意外死亡取具,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門扁耐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)暇检,“玉大人,你說(shuō)我怎么就攤上這事婉称】槠停” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵酿矢,是天一觀的道長(zhǎng)榨乎。 經(jīng)常有香客問(wèn)我,道長(zhǎng)瘫筐,這世上最難降的妖魔是什么蜜暑? 我笑而不...
    開(kāi)封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮策肝,結(jié)果婚禮上肛捍,老公的妹妹穿的比我還像新娘。我一直安慰自己之众,他們只是感情好拙毫,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著棺禾,像睡著了一般缀蹄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天缺前,我揣著相機(jī)與錄音蛀醉,去河邊找鬼。 笑死衅码,一個(gè)胖子當(dāng)著我的面吹牛拯刁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逝段,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼垛玻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了奶躯?” 一聲冷哼從身側(cè)響起帚桩,我...
    開(kāi)封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嘹黔,沒(méi)想到半個(gè)月后朗儒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡参淹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乏悄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浙值。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖檩小,靈堂內(nèi)的尸體忽然破棺而出开呐,到底是詐尸還是另有隱情,我是刑警寧澤规求,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布筐付,位于F島的核電站,受9級(jí)特大地震影響阻肿,放射性物質(zhì)發(fā)生泄漏瓦戚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一丛塌、第九天 我趴在偏房一處隱蔽的房頂上張望较解。 院中可真熱鬧,春花似錦赴邻、人聲如沸印衔。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奸焙。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間与帆,已是汗流浹背了赌。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鲤桥,地道東北人揍拆。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像茶凳,于是被迫代替她去往敵國(guó)和親嫂拴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉贮喧,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,726評(píng)論 0 9
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理筒狠,服務(wù)發(fā)現(xiàn),斷路器箱沦,智...
    卡卡羅2017閱讀 134,704評(píng)論 18 139
  • 阮一峰《未來(lái)世界的幸存者》讀后感 前兩天讀了阮一峰老師的文集《未來(lái)世界的幸存者》谓形,讀完五味雜陳灶伊,有很多感觸卻不知從...
    陸半農(nóng)閱讀 4,949評(píng)論 8 25
  • 淡黃色的光罩散去,一切又恢復(fù)了原狀寒跳,我和長(zhǎng)門都不可思議地盯著我們握在一起的手聘萨。 “長(zhǎng)門,”那個(gè)叫做小楠的女忍者很是...
    章瑾熙閱讀 586評(píng)論 0 3
  • 詞法分析把源代碼轉(zhuǎn)換成單詞流童太。 詞法部分與正則文法相對(duì)應(yīng)米辐,讀取前綴幾個(gè)字符就可以區(qū)分是什么單詞。特別設(shè)計(jì)時(shí)會(huì)讓詞法...
    小小青蛙不怕風(fēng)吹雨打閱讀 735評(píng)論 0 0