iOS 設計模式 委託模式

2021-09-07 01:50:27 字數 1420 閱讀 5890

委託是指給乙個物件提供機會對另一物件中的變化做出反應或者相應另乙個物件的行為。其基本思想是協同解決問題。

以上情況,結果都一樣:物件b是物件a的**(delegate)

1.委託(a)需要做的工作有:

1.定義**協議,協議名稱的命名規範:控制項類名 + delegate

2.定義**方法

3.設定**(delegate)物件  (比如myview.delegate = ***x;)

4.在恰當的時刻呼叫**物件(delegate)的**方法,通知**發生了什麼事情

(在呼叫之前判斷**是否實現了該**方法)

2.**(b)需要做的工作有:

定義**協議、定義**方法

#import

@class

tuangoufooterview;

//定義乙個協議,控制項類名 + delegate

@protocol tuangoufooterviewdelegate //

**方法一般都定義為@optional

@optional

//**方法名都以控制項名開頭,**方法至少有1個引數,將控制項本身傳遞出去

-(void)tuangoufooterdidclickedloadbtn:(tuangoufooterview *)tuangoufooterview;

@end

@inte***ce

tuangoufooterview : uiview

//定義**。要使用weak,避免迴圈引用

@property(nonatomic,weak) id

delegate

;@end

在恰當的時刻呼叫**物件(delegate)的**方法,通知**

//

通知**,先判斷是否有實現**的方法。

if ([self.delegate

respondstoselector:@selector(tuangoufooterdidclickedloadbtn:)])

實現**

@inte***ce viewcontroller ()

設定**

tuangoufooterview *footerview=[tuangoufooterview footerview];

footerview.

delegate=self;//

設定當前footerview為**

實現**方法

/*

* * 載入更多的資料 */

- (void)tuangoufooterdidclickedloadbtn:(tuangoufooterview *)tuangoufooterview

IOS設計模式之委託模式

委託模式從gof裝飾模式 decorator 介面卡模式 adapter 模板方法 template method 模式等演變而來,幾乎每乙個應用都會或多或少地用到委託模式,不只是cocoa touch框架,在cocoa中,委託模式也得到了廣泛的應用。include usingnamespace s...

設計模式IOS篇 第二章 委託模式

委託模式從設計模式中的裝飾模式,介面卡模式,模板方法模式演變過來 現在來看看ios版的是怎樣的,先說說乙個場景 現在有一家公司,他們接到乙個專案,專案的 project 專案需要有一些懂j a的程式設計師來編寫j a,意思就是委託一些j a程式設計師去完成這個專案 j aprogrammerprot...

PHP設計模式系列 委託模式

通過分配或委託其他物件,委託設計模式能夠去除核心物件中的判決和複雜的功能性。php view plain copy print?委託模式 去除核心物件中的判決和複雜的功能性 class cd public function play song public function playmp4 song...