Effective Objective-C 2.0(第3章)

編寫(xiě)高質(zhì)量iOS與OS X代碼的52個(gè)有效方法

第3章 接口與API設(shè)計(jì)

15.用前綴避免命名空間沖突

  • 選擇與你的公司、應(yīng)用程序或者二者皆有關(guān)聯(lián)之名作為類(lèi)名的前綴,并在所有代碼中均使用這一前綴。
  • 若自己所開(kāi)發(fā)的程序庫(kù)中用到了第三方庫(kù),則應(yīng)為其中的名稱(chēng)加上前綴。

16.提供“全能初始化方法”

  • 在類(lèi)中提供一個(gè)全能初始化方法,并于文檔里指明。其他初始化方法均應(yīng)調(diào)用此方法。
  • 若全能初始化方法與超類(lèi)不同,則需覆寫(xiě)超類(lèi)中的對(duì)應(yīng)方法。
  • 如果超類(lèi)的初始化方法不適用于子類(lèi),那么應(yīng)該覆寫(xiě)這個(gè)超類(lèi)方法,并在其中拋出異常。

17.實(shí)現(xiàn)description方法

  • 實(shí)現(xiàn)description方法返回一個(gè)有意義的字符串,用以描述該實(shí)例。
  • 若想在調(diào)試時(shí)打印出更詳盡的對(duì)象描述信息,則應(yīng)實(shí)現(xiàn)debugDescription方法。

18.盡量使用不可變對(duì)象

  • 盡量創(chuàng)建不可變的對(duì)象。
  • 若某屬性?xún)H可用于對(duì)象內(nèi)部修改,則在“class-continuation分類(lèi)”中將其由readonly屬性擴(kuò)展為readwrite屬性。
  • 不要把可變的collection作為屬性公開(kāi),而應(yīng)提供相關(guān)方法,以此修改對(duì)象中的可變collection。

19.使用清晰而協(xié)調(diào)的命名方式

  • 起名時(shí)應(yīng)遵從標(biāo)準(zhǔn)的Objective-C命名規(guī)范,這樣創(chuàng)建出來(lái)的接口更容易為開(kāi)發(fā)者所理解。
  • 方法名要言簡(jiǎn)意賅,從左至右讀起來(lái)要像個(gè)日常用語(yǔ)中的句子才好。
  • 方法名里不要使用縮略后的類(lèi)型名稱(chēng)。
  • 給方法起名時(shí)的第一要?jiǎng)?wù)就是確保其風(fēng)格與你自己的代碼或所要集成的框架相符。

20.為私有方法名加前綴

  • 給私有方法的名稱(chēng)加上前綴,這樣可以很容易的將其同公共方法區(qū)分開(kāi)。
  • 不要單用一個(gè)下劃線(xiàn)做私有方法的前綴,因?yàn)檫@種做法是預(yù)留給蘋(píng)果公司用的。

21.理解 Objective-C錯(cuò)誤模型

  • 只有發(fā)生了可使整個(gè)應(yīng)用程序崩潰的嚴(yán)重錯(cuò)誤時(shí),才應(yīng)使用異常。
  • 在錯(cuò)誤不那么嚴(yán)重的情況下,可以指派委托方法(delegate method)來(lái)處理錯(cuò)誤,也可以把錯(cuò)誤信息放在NSError對(duì)象里,經(jīng)由“輸出參數(shù)”返回給調(diào)用者。

22.理解 NSCopying協(xié)議

  • 若想令自己所寫(xiě)的對(duì)象具有拷貝功能,則需實(shí)現(xiàn)NSCopying協(xié)議。
  • 如果自定義的對(duì)象分為可變版本和不可變版本,那么就要同時(shí)實(shí)現(xiàn)NSCopying與NSMutableCopying協(xié)議。
  • 復(fù)制對(duì)象時(shí)需決定采用淺拷貝還是深拷貝,一般情況下應(yīng)盡量執(zhí)行淺拷貝。
  • 如果你所寫(xiě)的對(duì)象需要深拷貝,那么可考慮新增一個(gè)專(zhuān)門(mén)執(zhí)行深拷貝的方法。
最后編輯于
?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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