Target Action 設計模式

2021-07-07 01:20:53 字數 1259 閱讀 9564

target/action 設計模式可以實現高內聚低耦合的特點, 可以實現解耦

在一般的檢視類中, 如果直接使用觸控事件的響應方法的話, 不夠靈活, 對於不同的檢視,在相同的觸控事件中如果要實現不同的功能, 那麼每次使用觸控事件時, 都需要修改**, 非常麻煩.

我們可以通過 target/action 設計模式, 讓我們的 view類 像 button 一樣靈活(button 的響應方法就是 target/action 設計模式)

//新增 button 的響應事件

[button addtarget:self action:@selector(handlebuttonaction:) forcontrolevents:uicontroleventtouchupinside];

1 . 在我們的 view 類中的.h檔案定義乙個給外界提供的介面, 用於獲取觸控響應的目標(target), 以及響應觸控事件之後需要實現的方法(action)

- (void)addtarget:(id)target action:(sel)action;
2 . 在我們的 view 類的延展中定義兩個例項變數

3 . 在 view 的.m檔案中實現 addtarget: action: 方法

- (void)addtarget:(id)target action:(sel)action
4 . 在觸控事件的方法中, 實現當 view 接到觸控事件時, 通知 target 執行 action 的功能.

- (void)touchesbegan:(nsset *)touches withevent:(uievent *)event
5 . 在檢視控制器中呼叫 addtarget: action: 方法

actionview *redview = [[actionview alloc] initwithframe:cgrectmake(0, 0, 200, 200)];

redview.tag = 200;

redview.backgroundcolor = [uicolor redcolor];

[redview addtarget:self action:@selector(changeselfcolor:)];

[self.view addsubview:redview];

[redview release];

iOS 開發之 Target action 模式

target action 目標 動作模式,它貫穿於 ios 開發始終。但是對於初學者來說,還是被這 種模式搞得一頭霧水。其實target action 模式很簡單,就是當某個事件發生時,呼叫那個物件中的那個方法。如 按下按鈕時,呼叫 controller 裡邊的 click 方法。那個物件 就是 ...

Enterprise Library設計模式

在軟體架構和開發中,模式是發生在給定的環境的確定問題的描述,和基於主導力 guiding forces 集合,提出乙個解決方案。解決方案通常是乙個簡單的機制,因為它是二個或我個類 物件 服務 程序 執行緒 元件或節點的組合,這些在一起工作以解決底層架構或開發挑戰。模式是對於開發和架構而言是非常有用的...

Guarded Suspension設計模式

guarded suspension 設計模式可以保證,當執行緒在訪問某個物件時,發現條件不滿足,就掛起等待條件滿足時再次訪問 public class guardedsuspensionqueue catch interruptedexception e 插入元素並且喚醒take執行緒 queue...