本系列指在用通俗易懂的語言來講解iOS的底層原理知識及通用編程知識,為想深入Codeing的同學(xué)打開一扇窗, 在這系列文章中,你可能會發(fā)現(xiàn), 沒...
Q 為什么不推薦使用繼承?A 繼承是面向?qū)ο蟮乃拇筇匦灾? 用來表示類之間的 is-a 關(guān)系, 可以解決代碼復(fù)用的問題. 雖然繼承有諸多作用,...
基于接口而非實現(xiàn)編程這條原則的另一個表述方式是"基于抽象而非實現(xiàn)編程". 后者表述的方式其實更能體現(xiàn)這條原則的設(shè)計初衷, 我們做軟件開發(fā)的時候一...
Q 抽象類和接口的語法特性?抽象類不允許被實例化, 只能被繼承, 他可以包含屬性(實例變量)和方法. 方法既可以包含代碼實現(xiàn)也可以不包含代碼實現(xiàn)...
三種違反面向?qū)ο箫L(fēng)格的典型代碼設(shè)計 濫用setter, getter方法在設(shè)計實現(xiàn)類的時候, 除非真的需要,否則盡量不要給屬性定義setter方...
Q 什么是面向過程編程? 什么是面向過程編程語言?A 實際上 這個問題沒有嚴(yán)格的官方定義, 理解這兩個概念最好的方式是跟面向?qū)ο缶幊毯兔嫦驅(qū)ο缶?..
Q 什么是封裝?A 封裝也在做信息隱藏或者數(shù)據(jù)保護(hù),類通過暴露有限的訪問接口,授權(quán)外部進(jìn)行通過類提供的方式來訪問內(nèi)部信息或者數(shù)據(jù). 他需要編程語...
Q 為什么要學(xué)習(xí)設(shè)計模式?A 應(yīng)對面試中的設(shè)計模式相關(guān)問題 防止被別人吐槽代碼寫的爛 提高復(fù)雜代碼的設(shè)計和開發(fā)能力(為了讓別人看不懂) 讀源碼,...