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

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

第一章 熟悉的Objective-C

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


類(class):

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

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

引入頭文件三種方式:

1.#import引入:

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

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

2.#include引入

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

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

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

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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