2 建立型模式 工廠方法模式

2021-09-22 07:48:16 字數 1119 閱讀 9795

簡單工廠模式的不足:加入新產品的同時需要修改工廠類,違背「開閉原則」。

模式動機:增加乙個抽象工廠類,再定義具體工廠類來生產具體的產品,增加新產品時只需要新增產品類和對應的具體工廠類即可。由於我們是對抽象工廠進行程式設計,因此可以在不修改抽象工廠的前提下增加新產品。

模式定義:工廠方法模式(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個要素構成。本節來分析...