大話設計模式(1)簡單工廠模式

2022-05-03 07:54:10 字數 1480 閱讀 5167

簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。

簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。

簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。

請看uml圖:

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

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

工廠(creator)角色

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

抽象產品(product)角色

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

具體產品(concrete product)角色

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

詳細**:

工廠類

/**

* *

@author

zyh * */

public

class

test

}

抽象產品類

public

class

product

}

具體產品類

/**

* 產品a

* *

@author

zyh * */

public

class producta extends

product

}

/**

* 產品b

* *

@author

zyh * */

public

class productb extends

product

}

其他:產品的型別

/**

* 產品a,產品b的型別

* *

@author

zyh * */

public

enum

producttype

最後來個測試類,測試ok

/**

* *

@author

zyh * */

public

class

test

}

輸出:

產品a

產品b

[2] 豆瓣-大話設計模式

[3] clarcks的 github **

大話設計模式(1)簡單工廠模式

一 場景及uml圖 注意一點 factory與concreteproduct二者的關係是依賴關係,因為其是作為乙個方法的引數出現在factory中。二 包含的角色 簡單工廠模式包含三個角色 1 工廠類factory 工廠類是用來製造產品的。因此,在factory中有乙個用於製造產品的create函式...

大話設計模式 簡單工廠模式

學習c 1年的菜鳥,開始學習設計模式,學過了留下痕跡,歡迎一起談論學習。該模式總結 利用多型例項化不同的物件。include stdafx.h include include using namespace std class operate operate void setnumber1 int ...

大話設計模式 簡單工廠模式

最近在學習 大話設計模式 這本書,此本生動易動,其中有一些例子,我把 分寫如下。大話設計模式 無錯便是優?簡單工廠模式 下面以 乙個計算器的實現 operation運算類 public abstract class operation public void setnumbera public do...