Cocoa 模式

委託模式

Tip

委託對像不應該被 retain

實現委託模式的類應:

  1. 擁有一個名為 delegate_ 的實例變量來引用委託。
  2. 因此,訪問器方法應該命名為 delegatesetDelegate:
  3. delegate_ 對像不應該被 retain

模型/視圖/控制器(MVC)

Tip

分離模型與視圖。分離控制器與視圖、模型。回調 API 使用 @protocol

  • 分離模型與視圖:不要假設模型或者數據源的表示方法。保持數據源與表示層之間的接口抽像。視圖不需要瞭解模型的邏輯(主要的規則是問問你自己,對於數據源的一個實例,有沒有可能有多種不同狀態的表示方法)。
  • 分離控制器與模型、視圖:不要把所有的 「業務邏輯」 放進跟視圖有關的類中。這使代碼非常難以復用。使用控制器類來處理這些代碼,但保證控制器不需要瞭解太多表示層的邏輯。
  • 使用 @protocol 來定義回調 API,如果不是所有的方法都必須實現,使用 @optional``(特例:使用 Objective-C 1.0 時,``@optional 不可用,可使用類別來定義一個 「非正規的協議」)。