<a >Effective Objective C 2.0:編寫高質量iOS與OS X代碼的52個有效方法</a>
第 23 條:通過委托與數據源協議進行對象間通信###
要點:####
- 委托模式為對象提供了一套接口,使其可由此將相關事件告知其它對象.
- 將委托對象應該支持的接口定義為協議,在協議中把可能需要處理的事件定義成方法.
- 當某對象需要從另外一個對象中獲取數據時,可以使用委托模式.這種情境下,該模式亦稱"數據源協議".
- 若有必要,可實現含有位段的結構體,將委托對象是否能響應相關協議方法這一信息緩存至其中.
第 24 條:將類的實現代碼分散到便于管理的數個分類之中###
要點:####
- 使用分類機制把類的實現代碼劃分成易于管理的小塊.
- 將應該視為"私有的"方法歸入名為private的分類中,以隱藏實現細節.
第 25 條:總是為第三方分類的分類名稱加前綴###
要點:####
- 向第三方類中添加分類時,總應給其名稱加上你專有的前綴.
- 向第三方類中添加分類時,總應給其方法加上你專有的前綴.
第 26 條:勿在分類中聲明屬性###
要點:####
- 把封裝數據所用的全部屬性都定義的主接口里.
- 在"class-continuation分類"之外的其它分類中,可以定義存取方法,但盡量不要定義屬性.
第 27 條:使用"class-continuation分類"隱藏實現細節###
要點:####
- 通過"class-continuation分類"向類中新增實例變量.
- 如果某屬性在接口中聲明為"只讀",而類的內部又要用設置方法修改此屬性,那么就在"class-continuation分類"中將其擴展為"可讀寫"
- 把私有方法的原型聲明在"class-continuation分類"里面.
- 若想使用類所遵循的協議不為人所知,則可于"class-continuation分類"中聲明.
第 28 條:通過協議提供匿名對象###
要點:####
- 協議可在某種程度上提供匿名類型.具體的對象類型可以淡化成遵從某協議的id類型,協議里規定了對象所應實現的方法.
- 使用匿名對象來隱藏類型名稱(或類名)
- 如果具體類型不重要,重要的是對象能夠響應(定義在協議里的)特定方法,那可使用匿名對象來表示.