還在用繼承嗎溃斋?你out了

對于面向?qū)ο笳Z言,繼承是其最大的特點(diǎn)吸申,但是繼承不是萬能的梗劫,切繼承有很多弊端寞奸。今天題主寫這篇文章的目的,就是為了能讓大家看到繼承的不好在跳,并用一種新的替代方式-- 協(xié)議枪萄。

繼承有哪些貓病猫妙?

  • 繼承使得父類和子類耦合性太強(qiáng)
    什么意思瓷翻?就是說子類繼承父類以后,子類對父類的依賴性太強(qiáng)割坠,使得代碼的可移植性齐帚,復(fù)用性太差。
  • 由于iOS只能單一繼承彼哼,不能多繼承对妄,所以在某些情況,使用繼承不合理敢朱。
    比如IronMan剪菱,他能飛,那么他應(yīng)該繼承Fly這個(gè)類拴签;其次他是人類孝常,所以他應(yīng)該繼承Human這個(gè)類。但是我們不能多繼承蚓哩,咋辦捏构灸?
  • 即便是單一繼承,有時(shí)也不合理岸梨。
    舉個(gè)栗子:哈士奇喜颁,繼承自Dog,Dog能跑曹阔,哈士奇繼承了半开,但是,如果有一只哈士奇腿斷了呢次兆?這只哈士奇不能跑了怎么辦稿茉?它確確實(shí)實(shí)是狗,但是如果用繼承他就一定能跑芥炭。但是現(xiàn)在它腿斷了不能跑了。這不又矛盾了嗎恃慧?

放棄繼承用協(xié)議吧园蝠!

那到底怎么解決呢? 首先,題主想聲明一下:繼承多用來定義一個(gè)類是什么痢士;協(xié)議多用來定義一個(gè)類能做什么彪薛。這句話很關(guān)鍵茂装,希望大家仔細(xì)揣摩。其次善延,題主的傳遞的核心思想就是讓大家盡量少用繼承少态,多用協(xié)議
協(xié)議是干嘛的易遣?就是用來解耦的彼妻,用來聲明方法的。那好了豆茫,我們換協(xié)議來處理這些問題侨歉。

例如IronMan,它是個(gè)人,那么他就繼承自Human揩魂;然后我們寫一個(gè)Fly的協(xié)議幽邓,只要他能飛,他就遵守這個(gè)協(xié)議火脉。
再比如:哈士奇繼承自Dog牵舵,跑這個(gè)能力就用協(xié)議來定義,如果這只哈士奇能跑倦挂,就讓它遵守Run這個(gè)協(xié)議棋枕,否則它就不用遵守,他就不能跑妒峦。

這樣做的好處是什么重斑?就是大大降低了代碼的耦合性,提高了代碼的重用性肯骇。記卓恕:繼承父類的屬性(一個(gè)類是什么),擴(kuò)展子類的能力(一個(gè)類做什么)笛丙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漾脂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胚鸯,更是在濱河造成了極大的恐慌骨稿,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姜钳,死亡現(xiàn)場離奇詭異坦冠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哥桥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門辙浑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拟糕,你說我怎么就攤上這事判呕【胩撸” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵侠草,是天一觀的道長辱挥。 經(jīng)常有香客問我,道長边涕,這世上最難降的妖魔是什么晤碘? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮奥吩,結(jié)果婚禮上哼蛆,老公的妹妹穿的比我還像新娘。我一直安慰自己霞赫,他們只是感情好腮介,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著端衰,像睡著了一般叠洗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旅东,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天灭抑,我揣著相機(jī)與錄音,去河邊找鬼抵代。 笑死腾节,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的荤牍。 我是一名探鬼主播案腺,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼康吵!你這毒婦竟也來了劈榨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晦嵌,失蹤者是張志新(化名)和其女友劉穎同辣,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惭载,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旱函,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棕兼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陡舅。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖伴挚,靈堂內(nèi)的尸體忽然破棺而出靶衍,到底是詐尸還是另有隱情,我是刑警寧澤茎芋,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布颅眶,位于F島的核電站,受9級特大地震影響田弥,放射性物質(zhì)發(fā)生泄漏涛酗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一偷厦、第九天 我趴在偏房一處隱蔽的房頂上張望商叹。 院中可真熱鬧,春花似錦只泼、人聲如沸剖笙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弥咪。三九已至,卻和暖如春十绑,著一層夾襖步出監(jiān)牢的瞬間聚至,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工本橙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扳躬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓甚亭,卻偏偏與公主長得像贷币,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子狂鞋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

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

  • 1.項(xiàng)目經(jīng)驗(yàn) 2.基礎(chǔ)問題 3.指南認(rèn)識 4.解決思路 ios開發(fā)三大塊: 1.Oc基礎(chǔ) 2.CocoaTouch...
    陽光的大男孩兒閱讀 4,986評論 0 13
  • 文/時(shí)間細(xì)流 夜幕降臨片择,躲進(jìn)自己的小空間,開始反思自己骚揍。 剛開始寫作時(shí)字管,第一次害怕是自己怕寫的文章被親朋好友看到,...
    時(shí)間細(xì)流閱讀 227評論 2 2
  • 唐小玉家的祠堂放著一柄祖?zhèn)鞯挠袢缫狻?據(jù)說這個(gè)玉如意是清朝的物件信不,表示著吉祥如意嘲叔,幸福來臨。 唐家人對這柄玉如意也...
    那年木槿花開閱讀 1,009評論 16 32
  • 一個(gè)只有1.2.0三個(gè)先天智能有圈的15歲天才寶寶抽活,通過其母親所描述的生活日常硫戈,我也切實(shí)的了解感受了一下,創(chuàng)意下硕,藝...
    小狐貍娃娃閱讀 364評論 0 0
  • 上篇文章提到當(dāng)需要擴(kuò)大應(yīng)用內(nèi)存時(shí)可以使用多進(jìn)程丁逝,所以IPC也包括同個(gè)應(yīng)用的多進(jìn)程通信汁胆,下面說一下多進(jìn)程 如何開啟多...
    Eric_feng閱讀 844評論 0 0