/// <summary>/// 一些函式含有部分重複代碼/// </summary>void OriginalA(){ DoThingsA(); // unique code DoThingsB();}/// <summary>/// 另外一個含有部分重複代碼的函式/// </summary>void OriginalB(){ DoThingsA(); // 沒有重複的代碼 DoThingsB();}現在我們重構含有部分相同代碼的函式,用delegate模式重寫它們:
/// <summary>/// encapsulate shared functionality/// </summary>/// <param name="action">User defined action</param>void UniqueWrapper(Action Action){ DoThingsA(); action(); DoThingsB();}/// <summary>/// New implmentation of A/// </summary>void NewA(){ UniqueWrapper(() => { // unique code });}/// <summary>/// New implementation of B/// </summary>void NewB(){ UniqueWrapper(() => { // unique code });}
相關詞條
-
delegate模式
summarysummarysummary
-
delegate
。 [ ] [ accessmodifier ] _ [ Shadows ] Delegate [ Sub... 過程時必選。返回值的 數據類型。 備註 Delegate 語句定義委託...類似事件的設計模式。 調用方不需要知道或獲得在其上定義方法的對象...
定義 聲明 備註 -
Csharp
C#簡介 C#簡介C#(讀做 "C SHARP",中文譯音暫時沒有.專業人士一般讀"C sharp",現在很多非專業一般讀"C井...
C#簡介 C#從java繼承而來的特點 C#從C和C++繼承的特點 C#獨有的特點 -
西班牙全國勞工聯合會
抗爭模式做為革命的主要方式,組織工人、農人與一般大眾,建立一般人的階級...達成的。出席協調會的人是委託人(Delegate)他們只做 ...
成立和早期 現代 何謂全國勞工聯盟 全國勞工聯盟組織與思想 全國勞工的歷史背景 -
多播
(協定獨立多播)就是一種多播路由協定,它有兩種類型:稀疏模式(sparse-mode)和密集模式(dense-mode)。以Cisco 2621...
簡介 網路多播 編程方法 -
c#委託
設計模式的意義,對它們的中間代碼也做了討論。將方法作為方法的參數我們先...參數的類型。 本例中委託的定義: public delegate...,除了加入了delegate關鍵字以外,其餘的是不是完全一樣? 現在...
引言 將方法作為方法的參數 將方法綁定到委託 事件的由來 事件和委託的編譯代碼 -
《iPhone與iPad開發實戰》
視圖控制器 7.4.4 為豎向模式和橫向模式調整界面 7.5 彈出式視圖控制器和模式視圖控制器 7.5.1 創建彈出式視圖控制器 7.5.2 創建模式視圖控制器 7.6 小結 第8章 數據:動作...
內容簡介 圖書目錄 部分章節 -
iterator
引言疊代器模式(Iteratorpattern)疊代這個名詞對於熟悉...}而這就是關於疊代器模式套用很好的例子。這也是疊代器最常用的方法。定義結構...容器的內部細節暴露無遺。而疊代器模式的出現,很好的解決了上面兩種情況的弊端...
引言 定義結構 實現自己 適用情況 簡介 -
iPhone與iPad開發實戰——iOS 經典套用剖析
模式 3.3 套用實戰與講解 3.3.1 構建套用骨架... Plumb Bob App Delegate類 7.2.8 Nib檔案... 8.2.7 Space Bubble App Delegate類...