iOS 協議與分類

<a >Effective Objective C 2.0:編寫高質量iOS與OS X代碼的52個有效方法</a>

第 23 條:通過委托與數據源協議進行對象間通信###

要點:####

  1. 委托模式為對象提供了一套接口,使其可由此將相關事件告知其它對象.
  2. 將委托對象應該支持的接口定義為協議,在協議中把可能需要處理的事件定義成方法.
  3. 當某對象需要從另外一個對象中獲取數據時,可以使用委托模式.這種情境下,該模式亦稱"數據源協議".
  4. 若有必要,可實現含有位段的結構體,將委托對象是否能響應相關協議方法這一信息緩存至其中.

第 24 條:將類的實現代碼分散到便于管理的數個分類之中###

要點:####

  1. 使用分類機制把類的實現代碼劃分成易于管理的小塊.
  2. 將應該視為"私有的"方法歸入名為private的分類中,以隱藏實現細節.

第 25 條:總是為第三方分類的分類名稱加前綴###

要點:####

  1. 向第三方類中添加分類時,總應給其名稱加上你專有的前綴.
  2. 向第三方類中添加分類時,總應給其方法加上你專有的前綴.

第 26 條:勿在分類中聲明屬性###

要點:####

  1. 把封裝數據所用的全部屬性都定義的主接口里.
  2. 在"class-continuation分類"之外的其它分類中,可以定義存取方法,但盡量不要定義屬性.

第 27 條:使用"class-continuation分類"隱藏實現細節###

要點:####

  1. 通過"class-continuation分類"向類中新增實例變量.
  2. 如果某屬性在接口中聲明為"只讀",而類的內部又要用設置方法修改此屬性,那么就在"class-continuation分類"中將其擴展為"可讀寫"
  3. 把私有方法的原型聲明在"class-continuation分類"里面.
  4. 若想使用類所遵循的協議不為人所知,則可于"class-continuation分類"中聲明.

第 28 條:通過協議提供匿名對象###

要點:####

  1. 協議可在某種程度上提供匿名類型.具體的對象類型可以淡化成遵從某協議的id類型,協議里規定了對象所應實現的方法.
  2. 使用匿名對象來隱藏類型名稱(或類名)
  3. 如果具體類型不重要,重要的是對象能夠響應(定義在協議里的)特定方法,那可使用匿名對象來表示.
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容