c 設計模式

2021-08-22 09:06:58 字數 2389 閱讀 6488

設計模式c#描述之——簡單工廠模式

設計模式c#描述——抽象工廠模式

設計模式c#描述——抽象工廠模式

閱讀此文應先閱讀簡單工廠模式與工廠方法模式

抽象工廠模式是物件的建立模式,它是工廠方法模式的進一步推廣。

假設乙個子系統需要一些產品物件,而這些產品又屬於乙個以上的產品等級結構。那麼為了將消費這些產品物件的責任和建立這些產品物件的責任分開,可以引進抽象工廠模式。這樣的話,消費產品的客戶不需要直接參與產品的建立工作,而只需要向乙個公用的工廠介面請求所需要的產品。

採用抽象工廠模式設計出的系統類圖如下。

從上圖可以看到,抽象工廠模式設計到以下的角色:

抽象工廠角色:擔任這個角色的是工廠方法模式的核心,它是與應用系統的商業邏輯無關的。通常使用介面或抽象類實現。

具體工廠角色:這個角色直接在客戶端的呼叫下建立產品的例項。這個角色含有選擇合適的產品物件的邏輯,而這個邏輯是與應用系統的商業邏輯緊密相關的。通常使用具體的類實現。

抽象產品角色:擔任這個角色的類是抽象工廠方法模式所建立的物件的父類,或它們共同擁有的介面。通常使用介面或抽象類實現這一角色。

具體產品角色:抽象工廠模式所建立的任何產品物件都是某一具體產品類的例項。這是客戶端最終需要的東西。通常使用具體類實現這個角色。

下面給出這個系統的原**:

creator:

public inte***ce creator

concretecreator1:

public class concretecreator1:creator

public productb factoryb() }

concretecreator2:

public class concretecreator2:creator

public productb factoryb() }

producta:

public inte***ce producta

producta1:

public class producta1:producta }

producta2:

public class producta2:producta }

productb:

public inte***ce productb

productb1:

public class productb1:productb }

productb2:

public class productb2:productb }

在以下情況下應該使用抽象工廠模式:

乙個系統不應當依賴於產品類例項如何被建立、組合和表達的細節,這對於所有形態的工廠模式都是重要的。

這個系統的產品有多於乙個的產品族,而系統只消費其中某一族的產品。

同屬於同乙個產品族的產品是在一起使用的,這一約束必須在系統的設計中體現出來。

系統提供乙個產品類的庫,所有的產品以同樣的介面出現,從而使客戶端不依賴於實現。

設計模式c#描述——單例與多例模式

設計模式c#描述——單例與多例模式

作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。

單例模式有以下特點:

單例類只能有乙個例項。

單例類必須自己建立自己的唯一例項。

單例類必須給所有其他物件提供這一例項。

乙個典型的單例類的實現如下所示:其中構造子私有表示子類不能被繼承。

public class singleton

public static singleton getinstance()

return m_instance;

} }

所謂多例模式,實際上就是單例模式的自然推廣,單例類一般情況下只可以有乙個例項,但單例類也可以推廣到允許有限個例項,這種模式就是多例模式。作為物件的建立模式,多例模式有以下特點:

多例類可以有多個例項。

多例類必須自己建立、管理自己的例項,並向外界提供自己的例項。

多例類分為有上限多例類與無上限多例類。

乙個有上限的多例類已經把例項的上限當作邏輯的一部分,並建造到了多例類的內部。如下:

public class multiton

public static multiton getinstance(int whichone)

return instance1;

} else

return instance2;

} }

} 多例類的例項數目不需要有上限,例項數目沒有上限的多例模式就叫做無上限多例模式。由於沒有上限的多例類對例項的數目是沒有限制的,因此,雖然這種多例模式是單例模式的推廣,但是這種多例類並不一定能夠回到單例類。一般採用聚集管理所有的例項。

C設計模式,C 設計模式解說文件

個人引用了知乎上面一位的回答 遂感覺暫時沒有接觸設計模式的必要,於是將手頭上的資源寫成部落格權當收藏 學習設計模式的乙個弊端是 我們學習的時候看到的只是結果,並不了解過程和動機,也就是其他人在什麼樣的情況下做出這樣的設計,而這個恰恰是各種教程 資料上學習不到的。我自己在經歷了2年的應用設計模式的摸索...

C 設計模式

c 設計模式大體上講分為三類,即 建立模式,結構模式和行為模式 建立模式 單例模式 工廠模式 抽象工廠模式 生成器模式 原型模式。結構模式 介面卡模式 橋接模式 組成模式 裝飾模式 外觀模式 享元模式 模式。行為模式 中介者模式 命令模式 備忘錄模式 狀態模式 策略模式 直譯器模式 迭代器模式 觀察...

C 設計模式

c 設計模式 課程目標 理解松耦合設計思想 掌握物件導向設計原則 掌握重構技法改善設計 掌握gof 核心設計模式 什麼事設計模式 每乙個模式描述了乙個在我們周圍不斷重 生的問題以及該問題的解決方案的核心。這樣,你就能一次又一次的 使用該方案而不必做重複勞動 gof設計模式 歷史性著作 設計模式 可復...