設計模式 工廠模式(簡單工廠)

2021-08-22 02:21:38 字數 1140 閱讀 8633

一、簡單工廠

定義:簡單工廠模式(****** factory pattern)屬於類的創新型模式,又叫靜態工廠方法模式(static factorymethod pattern),是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。

特點:工廠類直接實現,乙個產品介面,乙個工廠類可以產生多種產品

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

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

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

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

優點:輕量級,**結構簡單清晰。而且工廠類也可以生產不同的產品。

缺點:只能生產單一的產品(抽象工廠可以解決此問題)

1.先定義掃瞄產品介面

//掃瞄頭產品介面

public inte***ce iscanhardware

定義具體產品

//霍尼掃瞄頭

public class honeywell implements iscanhardware

}//moto的掃瞄頭

public class moto implements iscanhardware

}

2.工廠類通過讀取配置檔案然後使用反射獲取對應的產品例項。通過反射的最大好處就是增加新產品的時候只需要增加乙個實現iscanhardware 介面的具體產品,其他的**都不需要改動。個人認為這種方法可以取代工廠方法模式,而且比工廠方法模式更加易於維護**簡潔。無需抽象工廠的角色。

public class factory catch (exception ex)

}private static string getclasspackage()

}

3.測試類,通過工廠類生產具體掃瞄頭物件

public class scanbarcodetest 

}}

設計模式(簡單工廠模式 工廠模式 抽象工廠模式)

當邏輯較為簡單時,可以直接建立對應的類。如下 include using namespace std class class banana class pear intmain 通過此 可以發現,使用者直接與客戶接觸,違背了dip 依賴倒轉 原則,過於麻煩,所以引出簡單工廠模式。include us...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...

簡單工廠設計模式與工廠設計模式

工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...