2017.6.6 學(xué)習(xí)日記-第2條:在類的文件中盡量少引入其他頭文件

《Effective Objective-C 2.0 編寫高質(zhì)量iOS與OS X的52個(gè)有效方法》讀書總結(jié)

第一章 熟悉的Objective-C

第2條:在類的文件中盡量少引入其他頭文件


類(class):

頭文件(head file):后綴.h

實(shí)現(xiàn)文件(implementation file):后綴.m

引入頭文件三種方式:

1.#import引入:

一些基本頭文件,如框架類Foundation.h、UIKit.h,由于繼承自框架中的某個(gè)類,可能會(huì)使用到其基類中的許多內(nèi)容

需要實(shí)現(xiàn)屬性、實(shí)例變量或者要遵循協(xié)議

2.#include引入

#include 與#import 類似,#import可以自動(dòng)防止重復(fù)導(dǎo)入,一般情況下使用#import

3.@class關(guān)鍵字引入

只需知道類名而不用知道類中的細(xì)節(jié), 即向前聲明(forward declaring),將引用頭文件的時(shí)機(jī)盡量延后,只在確有需要時(shí)才引入。

向前聲明解決了兩個(gè)類互相引用的問題。

除非確有必要,否則不要引入頭文件。一般來(lái)說,應(yīng)在某個(gè)類的頭文件中使用向前聲明來(lái)提及別的類,并在實(shí)現(xiàn)文件中引入那些類的頭文件。這樣子可以盡量降低類之間的耦合(coupling)。

有時(shí)無(wú)法使用向前聲明,比如要聲明某個(gè)類遵循一項(xiàng)協(xié)議。這種情況下,盡量把 “該類遵循某協(xié)議” 的這樣聲明移至 “class-continuation 分類中” 中。如果不行的話,就把協(xié)議單獨(dú)放在一個(gè)頭文件,然后將其引入。

“class-continuation 分類”,(class-continuation category)

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

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

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