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

2021-07-01 18:10:02 字數 1541 閱讀 3606

今天主要講解簡單工廠模式即靜態工廠設計模式。

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

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

2.抽象(product)角色 簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。

3.具體產品(concrete product)角色 簡單工廠模式所建立的具體例項物件。

簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。違背了ocp(開放-封閉原則,即對擴充套件開放,對修改封閉。開放-封閉原則是物件導向設計的核心所在。遵循這個原則可以提公升軟體的可維護、可擴充套件、可復用、靈活性好。) 在這個模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類物件。使用者在使用時可以直接根據工廠類去建立所需的例項,而無需了解這些物件是如何建立以及如何組織的。有利於整個軟體體系結構的優化。

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

package cn.edu.ujn.designpattern;

inte***ce fruit

@override

public void grow()

@override

public void harvest()

@override

public void plant() }

class strawberry implements fruit

@override

public void harvest()

@override

public void plant() }

class fruitfactory

return fruit; }}

public class ******factory

}

參考資料

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

學習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...

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

乙個 概念 簡單工廠模式 factory pattern 它屬於建立模式,又稱靜態工廠方法模式 static factorymethod pattern 可是不屬於23gof設計模式之中的乙個。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。二 uml圖 簡單工廠主要分為三個角色 工廠 c...