例項解析C 設計模式程式設計中簡單工廠模式的採用

2022-10-04 02:03:09 字數 1399 閱讀 8615

簡單工廠模式中專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。它又稱為靜態工廠方法模式,屬於類的建立型模式。

簡單工廠模式的uml類圖

簡單工廠模式的程式通過封裝繼承來降低程式的耦合度,設計模式使得程式更加的靈活,易修該,易於復用。

簡單工廠是在工廠類中做判斷,從而創造相應的產品。

簡單工廠模式的實質是由乙個工廠類根據傳入www.cppcns.com的引數,動態決定應該建立哪乙個產品類(這些產品類繼承自乙個父類或介面)的例項。

該模式中包含的角色及其職責

1.工廠(creator)角色

簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類可以被外界直接呼叫,建立所需的產品物件。

2.抽象(product)角色

簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。

3.具體產品(concrete product)角色

是簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。

一般來講它是抽象產品類的子類,實現了抽象產品類中定義的所有介面方法。

簡單工廠模式的特點:

&nbs

簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。

在這個模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。使用者在使用時可以直接根據工廠類去建立所需的例項,而無需了解這些物件是如何建立以及如何組織的。有利於整個軟體體系結構的優化。

不難發現,簡單工廠模式的缺點也正體現在其工廠類上,由於工廠類集中了所有例項的建立邏輯,所以「高內聚」方面做的並不好。另外,當系統中的具體產品類不斷增多時,可能會出現要求工廠類也要做相應的修改,擴充套件性並不很好。

舉個例子:有一家生產處理器核的廠家,它只有乙個工廠,能夠生產兩種型號的處理器核。客戶需要什麼樣的處理器核,一定要顯示地告訴生產工廠。

下面給出一種實現方案。

#include

using namespace std;

enum coretype

;class singlecore;/*

* a 型號單核

*/class singlecorea: public singlecore

執行結果:

show singlecorea

請按任意鍵繼續. . .

show singlecoreb

show singlecorea

show singlecorea

請按任意鍵繼續. . .

show singlecoreb

press any key to continue

本文標題: 例項解析c++設計模式程式設計中簡單工廠模式的採用

本文位址: /ruanjian/c/143974.html

解析C 設計模式程式設計中備忘錄模式的運用

一 概述 在軟體開發中,有時需要儲存乙個物件的狀態,以便於允許使用者取消相關操作或者從以往的狀態中恢復過來。比如乙個文件版本管理系統,可以根據需要將指定文件恢復到之前儲存過的任意乙個狀態。這時就可以通過備忘錄模式來實現。二 備忘錄模式 備忘錄模式可以在不破壞封裝性的前提下捕獲乙個物件的內部狀態,並在...

解析C 設計模式程式設計中介面卡模式的實現

在實際的軟體系統設計和開發中,為了完成某項工作需要購買乙個第三方的庫來加快開發。這帶來乙個問題,在應用程式中已經設計好的功能介面,與這個第三方提供的介面不一致。為了使得這些介面不相容的類可以在一起工作,介面卡模式提供了一種介面的適配機制。介面卡模式的設計思想在生活中經常會應用到,如我們在給手機充電的...

例項講解C 程式設計中對設計模式中的原型模式的使用

片斷 1 prototype.h ifndef prototype h define prototype h class prototype class concreteprototype public prototype endif prototype h 片斷 2 prototype.cpp i...