這一篇介紹一下 gof設計模式中的 factory method 模式
factory method
gof設計模式對 factory method 的定義
/* 未使用工廠方法模式,在test類中的run方法中需要依靠具體的類建立物件,
違背了依賴倒置原則,如果run方法需要呼叫其他的具體類建立物件,
run的**就需改動
*/#include
using
namespace std;
/* 方法介面 */
class
intermethod};
/* 方法1 */
class
method1
:public intermethod };
/* 方法2 */
class
method2
:public intermethod };
/* 方法3 */
class
method3
:public intermethod };
/* 更多方法... */
/* 呼叫不同方法執行 */
class
test
~test()
private
: intermethod* intermethod;};
intmain()
/* 使用工廠方法模式,在test類中的run方法中不需要依靠具體的類建立物件,
如果run方法需要呼叫其他的具體類建立物件,run的**不需改動
*/#include
using
namespace std;
/* 方法介面 */
class
intermethod};
/* 工廠介面 */
class
factory};
/* 方法1 */
class
method1
:public intermethod };
/* 方法1的工廠 */
class
method1factory
:public factory
~method1factory()
private
: method1* method1;};
/* 方法2 */
class
method2
:public intermethod };
/* 方法2的工廠 */
class
method2factory
:public factory
~method2factory()
private
: method2* method2;};
/* 方法3 */
class
method3
:public intermethod };
/* 方法3的工廠 */
class
method3factory
:public factory
~method3factory()
private
: method3* method3;};
/* 更多方法... */
/* 呼叫不同方法執行 */
class
test
void
run()~
test()
private
: factory* factory;};
intmain()
總結 學習筆記 設計模式之Factory Method
目的分類 物件建立型模式 範圍準則 類 該模式處理類和子類之間的關係,這些關係通過繼承建立,是靜態的,在編譯時刻便確定下來了 主要功能 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類 適用情況 當乙個類不知道它所必須建立的物件的類的時候...
設計模式之工廠方法(Factory Method)
在軟體開發過程中,有很多人抱怨著需求的變化,是需求沒有做好麼?不是的,其實需求變化在軟體開發中是不可避免的。做人也是一樣,出了問題要先從自己這邊找原因,然後想辦法解決。我們身為程式設計師,向使用者和需求分析師們抱怨 其實,任何一種抱怨都是沒有意義的 是沒有意義的。究竟怎樣解決這個問題呢?我身邊很多人...
設計模式 設計模式
物件導向程式設計 oop 的基本概念有 封裝,抽象,繼承,多型等,如何開發出可復用的物件導向軟體一直困擾著軟體開發人員。可復用的物件導向技術包括類的繼承,物件的組合和引數化型別 generic gof的巨著 設計模式 總結出可復用的物件導向的23個設計模式,並且歸類成 建立型模式,結構型模式和行為型...