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