簡單工廠模式的不足:加入新產品的同時需要修改工廠類,違背「開閉原則」。
模式動機:增加乙個抽象工廠類,再定義具體工廠類來生產具體的產品,增加新產品時只需要新增產品類和對應的具體工廠類即可。由於我們是對抽象工廠進行程式設計,因此可以在不修改抽象工廠的前提下增加新產品。
模式定義:工廠方法模式(factory method pattern)又稱工廠模式、虛構造器。該模式下,抽象工廠負責建立產品的公共介面,具體工廠繼承自該介面來具體生產產品,這樣就相當於將產品的例項化延遲到工廠子類中完成。
模式結構圖:
模式**:
bt_工廠方法模式.h:
#ifndef fmp_h
#define fmp_h
#include /*
定義抽象產品類
*/class product
};/*
定義具體產品類
*/class concreteproduct : public product
;concreteproduct::concreteproduct()
/* 定義工廠介面
*/class factory
virtual product* factorymethod() = 0;
};class concretefactory : public factory
;product* concretefactory::factorymethod()
#endif // fmp_h
bt_工廠方法模式.cpp:
#include "bt_工廠方法模式.h"
#include int main()
模式優缺點: 建立型模式 工廠方法模式
目錄 1.工廠方法模式概述 1.1 工廠方法模式概念 1.2 工廠方法模式類圖 2.工廠方法模式實現原理 3.工廠方法模式優缺點 3.1 優點 3.2 缺點 又稱為虛擬構造器 virtual constructor 模式或多型模式,屬於建立型模式。在工廠方法模式中,父類負責定義建立物件的公共介面,而...
建立型模式 工廠方法模式
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factorymethod使乙個類的例項化延遲到其子類。1.當乙個類不知道它所必須建立的物件的類的時候。2.當乙個類希望由它的子類來指定它所建立的物件的時候。3.當類將建立物件的職責委託給多個幫助子類中的某乙個,並且你希望將哪乙個幫助子類是 者這...
建立型模式 工廠方法模式
在 簡單工廠模式 一節我們介紹了簡單工廠模式,提到了簡單工廠模式違背了開閉原則,而 工廠方法模式 是對簡單工廠模式的進一步抽象化,其好處是可以使系統在不修改原來 的情況下引進新的產品,即滿足開閉原則。優點 缺點 應用場景 工廠方法模式由抽象工廠 具體工廠 抽象產品和具體產品等4個要素構成。本節來分析...