設計模式 三 簡單工廠模式

2021-09-28 18:32:05 字數 1538 閱讀 3147

定義

簡單工廠模式屬於建立型模式又叫做靜態工廠方法模式,是由乙個工廠物件決定建立出哪一種產品類的例項。

簡單工廠模式結構圖

這裡我們用生產電腦來舉例,假設有乙個電腦的代工生產商,它目前已經可以代工生產聯想電腦了,隨著業務的拓展,這個代工生產商還要生產惠普和華碩的電腦,這樣我們就需要用乙個單獨的類來專門生產電腦,這就用到了簡單工廠模式。下面我們來實現簡單工廠模式:

建立抽象產品類

我們建立乙個電腦的抽象產品類,他有乙個抽象方法用於啟動電腦:

public

abstract

class

computer

建立具體產品類接著我們建立各個品牌的電腦,他們都繼承了他們的父類computer ,並實現了父類的start方法:

聯想電腦:

public

class

lenovocomputer

extends

computer

惠普電腦:

public

class

hpcomputer

extends

computer

}

華碩電腦:

public

class

asuscomputer

extends

computer

}

建立工廠類接下來建立乙個工廠類,它提供了乙個靜態方法createcomputer用來生產電腦。你只需要傳入你想生產的電腦的品牌,它就會例項化相應品牌的電腦物件:

public

class compute***ctory

return mcomputer;}}

客戶端呼叫工廠類客戶端呼叫工廠類,傳入「hp」生產出惠普電腦並呼叫該電腦物件的start方法:

public

class creatcomputer

}

使用場景簡單工廠模式優缺點優點:使使用者根據引數獲得對應的類例項,避免了直接例項化類,降低了耦合性。

缺點:

可例項化的型別在編譯期間已經被確定,如果增加新型別,則需要修改工廠,違背了開放封閉原則(asd) 。 簡單工廠需要知道所有要生成的型別,當子類過多或者子類層次過多時不適合使用。

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

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...

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

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

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

請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...