swift面向協(xié)議編程

面向?qū)ο缶幊痰睦Ь?/h3>
  1. 橫向關(guān)注點:我們很難在不同集成關(guān)系的類里共用代碼,我們的關(guān)注點位于兩條繼承鏈的橫向切面上。面向?qū)ο鬅o法描述兩個不同的事物具體某個相同的特性

    解決方案:
    • copy & paste 相同的代碼,這也是壞代碼的開頭
    • 引入一個BaseViewController,會使base成為一個垃圾堆,完全不知道哪些類走了base方法
    • 依賴注入:通過外界傳入一個帶有相同代碼的對象
    • 多繼承:swift沒有多繼承,其他語言有多繼承,這樣也會有問題,如果繼承的兩個類中有兩個相同的方法,該類執(zhí)行該相同方法時應(yīng)該怎么辦,出現(xiàn)菱形缺陷
  2. 和類不一樣,面向協(xié)議編程的基礎(chǔ)是值類型,不再是引用了,面向協(xié)議所提倡的是扁平化和去嵌套的代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容