c#設計模式大體上講分為三類,即:建立模式,結構模式和行為模式
建立模式:單例模式、工廠模式、抽象工廠模式、生成器模式、原型模式。
結構模式:介面卡模式、橋接模式、組成模式、裝飾模式、外觀模式、享元模式、**模式。
行為模式:中介者模式、命令模式、備忘錄模式、狀態模式、策略模式、直譯器模式、迭代器模式、觀察者模式、訪問者模式、模板方法模式。
第一類: 單例模式(singleton pattern):保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。
例:跨窗體訪問同乙個例項。
工廠模式(factory pattern):根據提供給工廠的資料,從一系列相關的類中選擇乙個類例項並返回。例:oracle,sql server 訪問類的選擇抽象工廠模式(abstract factory pattern):為一組類返回乙個工廠。
生成器模式(builder pattern):根據提供給他的資料及表示,組裝成新的物件。
例:根據使用者不同的選擇顯示不同控制項。
原型模式(prototype pattern):由結果到乙個新的結果。
例:根據由執行的sql 查詢結果得到另乙個結果。與生成器類似工廠,兩者都返回由許多方法的物件組成的類。差別:抽象工廠返回一系列相關的類。生成器是根據提供給它的資料一步一步地構建乙個複雜的物件。
第二類: 介面卡模式(adapter pattern):將乙個類將一種介面轉換成另一種介面。
橋接模式(bridge pattern):類的介面和它的實現相分離,無需改變呼叫者的**即可替代實現的過程。
組成模式(composite pattern):組合就是物件的結合。可以構建部分-整體的關係或資料的樹形關係。
裝飾模式(decorator pattern):用乙個類包裝給定的類改變單個物件的行為,但不需要建立乙個新的派生類。
外觀模式(facde pattern):可以將一系統複雜的類包裝成乙個簡單的封閉介面。
享元模式(flyweight pattern):通過共享(把引數移動外部)大幅地減少單個例項的數目。
**模式(proxy pattern):為乙個複雜的物件提供乙個簡單的佔位物件。
第三類: 中介者模式(mediator pattern):中介者做為唯一了解其它類的乙個,簡化了通訊.促進類之音的鬆散便於修改維護。每個和中介者通訊的控制項都稱為同事。應用:可視介面的程式中,當面臨多個物件之間複雜的通訊時,可使用。
命令模式(command pattern):只將請求**給特定的物件。目的:將程式的介面和操作分離。缺點:增加了散亂的小類
備忘錄模式(memento pattern):儲存物件的資料以便以後能夠恢復它。發起人(originator):是乙個物件,我們要儲存它的狀態。
備忘錄(memento):是另外乙個物件,它儲存了發起人的狀態。
負責人(caretaker):管理狀態儲存的時機,儲存備忘錄,並且如果需要的話,使用備忘錄恢**起人的狀態。
狀態模式(state pattern):用乙個物件表示程式的狀態,並通過轉換物件來轉換程式的狀態。以前,根據傳進來的引數執行不同的計算或顯示不同的內容。switch-case/if else狀態模式要取代它。
策略模式(stractegy pattern):與狀態模式相似,根據需要選擇一封裝在context驅動器類。
觀察者模式(observer pattern):以多種形式顯示資料。在觀察者模式中,把資料稱為目標(subject),把每種顯示稱為觀察者(observer) 直譯器模式(interpreter pattern):為某種語言定義乙個文法,並用該文法解釋語言中的語句。
適用性: 1.當讀者需要乙個命令直譯器分析使用者命令時。
2.當程式需要分析乙個代數串時。
3.發程式要生成各種形式的輸出時。
迭代器模式(iterator pattern):允許使用乙個標準的介面順序訪問乙個資料列表或集合。
模板方法模式(template method pattern):先建立乙個父類,把其中乙個或多個方法留個子類實現。是一種非常簡單又常用的模式。
思想:將乙個類的基本部分抽取出來放到乙個基類中,不必重出現在乙個派生類中。
職責鏈(chain of responsibility):允許多個類處理同乙個請求。要點: 1.鏈的組織是從最特珠的到最一般的。 2.不能保證在任何情況下都會有響應。職責鏈用於分析器與編譯器。
C設計模式,C 設計模式解說文件
個人引用了知乎上面一位的回答 遂感覺暫時沒有接觸設計模式的必要,於是將手頭上的資源寫成部落格權當收藏 學習設計模式的乙個弊端是 我們學習的時候看到的只是結果,並不了解過程和動機,也就是其他人在什麼樣的情況下做出這樣的設計,而這個恰恰是各種教程 資料上學習不到的。我自己在經歷了2年的應用設計模式的摸索...
C 設計模式
c 設計模式 課程目標 理解松耦合設計思想 掌握物件導向設計原則 掌握重構技法改善設計 掌握gof 核心設計模式 什麼事設計模式 每乙個模式描述了乙個在我們周圍不斷重 生的問題以及該問題的解決方案的核心。這樣,你就能一次又一次的 使用該方案而不必做重複勞動 gof設計模式 歷史性著作 設計模式 可復...
c 設計模式
設計模式c 描述之 簡單工廠模式 設計模式c 描述 抽象工廠模式 設計模式c 描述 抽象工廠模式 閱讀此文應先閱讀簡單工廠模式與工廠方法模式 抽象工廠模式是物件的建立模式,它是工廠方法模式的進一步推廣。假設乙個子系統需要一些產品物件,而這些產品又屬於乙個以上的產品等級結構。那麼為了將消費這些產品物件...