設計模式 工廠模式

2021-09-14 05:27:58 字數 959 閱讀 3616

概念

工廠方法模式同樣屬於類的建立型模式又被稱為多型工廠模式 。工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。

核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。

抽象工廠角色:工廠方法模式的核心,任何工廠類都必須實現這個介面。

具體工廠角色:具體工廠類是抽象工廠的乙個實現,負責例項化產品物件。

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

具體產品角色:工廠方法模式所建立的具體例項物件

工廠方法模式和簡單工廠模式比較

工廠方法模式與簡單工廠模式在結構上的不同不是很明顯。工廠方法類的核心是乙個抽象工廠類,而簡單工廠模式把核心放在乙個具體類上。

工廠方法模式之所以有乙個別名叫多型性工廠模式是因為具體工廠類都有共同的介面,或者有共同的抽象父類。

當系統擴充套件需要新增新的產品物件時,僅僅需要新增乙個具體物件以及乙個具體工廠物件,原有工廠物件不需要進行任何修改,也不需要修改客戶端,很好的符合了「開放-封閉」原則。而簡單工廠模式在新增新產品物件後不得不修改工廠方法,擴充套件性不好。工廠方法模式退化後可以演變成簡單工廠模式。

「開放-封閉」通過新增**的方式,不是通過修改**的方式完成功能的增強。

#include "iostream"

using namespace std;

class fruit

};class fruitfactory

};//香蕉

class banana : public fruit

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...