設計模式 Factory Method

2021-10-03 10:45:09 字數 1993 閱讀 3960

這一篇介紹一下 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個設計模式,並且歸類成 建立型模式,結構型模式和行為型...