委托對象不應(yīng)該被 ``retain``
實現(xiàn)委托模式的類應(yīng):
delegate_
的實例變量來引用委托。delegate
和 setDelegate:
。delegate_
對象不應(yīng)該被 retain
。Tip
分離模型與視圖。分離控制器與視圖、模型?;卣{(diào) API 使用 ``@protocol``。
分離模型與視圖:不要假設(shè)模型或者數(shù)據(jù)源的表示方法。保持數(shù)據(jù)源與表示層之間的接口抽象。視圖不需要了解模型的邏輯(主要的規(guī)則是問問你自己,對于數(shù)據(jù)源的一個實例,有沒有可能有多種不同狀態(tài)的表示方法)。
分離控制器與模型、視圖:不要把所有的 “業(yè)務(wù)邏輯” 放進跟視圖有關(guān)的類中。這使代碼非常難以復(fù)用。使用控制器類來處理這些代碼,但保證控制器不需要了解太多表示層的邏輯。
@protocol
來定義回調(diào) API,如果不是所有的方法都必須實現(xiàn),使用 @optional
(特例:使用 Objective-C 1.0 時,@optional
不可用,可使用類別來定義一個 “非正規(guī)的協(xié)議”)。
更多建議: