1. 程式人生 > >C++工廠方法模式(Factory Method Pattern)

C++工廠方法模式(Factory Method Pattern)

#ifndef LOGGER_H
#define LOGGER_H

#include <iostream>
#include <string>
class Logger
{
    public:
        virtual void writeLog() = 0;
};

class DatabaseLogger : public Logger
{
    public:
        void writeLog() {
            std::cout << "DatabaseLogger" << std::endl; 
        }
};

class FileLogger : public
Logger { public: void writeLog() { std::cout << "FileLogger" << std::endl; } }; class LoggerFactory { public: virtual Logger* createLogger() = 0; }; class DatabaseLoggerFactory : public LoggerFactory { public: Logger* createLogger
() { Logger* p = new DatabaseLogger; return p; } }; class FileLoggerFactory : public LoggerFactory { public: Logger* createLogger() { Logger* p = new FileLogger; return p; } }; #endif
#include "Logger.h"

void test()
{
    LoggerFactory* pFileFactory = new
FileLoggerFactory; Logger *pFile = pFileFactory->createLogger(); pFile->writeLog(); LoggerFactory* pDatabaseFactory = new DatabaseLoggerFactory; Logger *pDatabase = pDatabaseFactory->createLogger(); pDatabase->writeLog(); delete pFileFactory; delete pFile; delete pDatabaseFactory; delete pDatabase; } int main() { test(); }

這裡寫圖片描述

相關推薦

C++工廠方法模式(Factory Method Pattern)

#ifndef LOGGER_H #define LOGGER_H #include <iostream> #include <string> class Logger {

設計模式之六:工廠方法模式(Factory method Pattern)

image bsp turn stat ole ati ace 方法 系統擴展 工廠方法(Factory Method)模式就是定義一個創建對象的工廠接口,將實際創建工作推遲到子類當中。 核心工廠類不再負責具體產品的創建,僅提供了具體工廠子類必須實現的接口,這樣核

工廠模式--工廠方法模式(Factory Method Pattern)

邏輯 read oge use 推廣 stat adt 包括 TP 2.1. 模式動機 現在對該系統進行修改,不再設計一個按鈕工廠類來統一負責所有產品的創建,而是將具體按鈕的創建過程交給專門的工廠子類去完成,我們先定義一個抽象的按鈕工廠類,再定義具體的工廠類來生成圓形按鈕

設計模式工廠方法模式(Factory Method Pattern)

2. 工廠方法模式(Factory Method Pattern) 目錄 工廠方法模式(Factory Method Pattern) 模式動機 模式定義 模式結構 時序圖 程式碼分析 模式分析 例項

用心理解設計模式——工廠方法模式 (Factory Method Pattern)

前置文章: 用心理解設計模式——設計模式的原則  設計模式相關程式碼已統一放至 我的 Github   一、定義   建立型模式之一。   Define an interface for creating an object, b

sincerit 工廠方法模式(Factory Method Pattern)

工廠方法模式(Factory Method Pattern) 工廠方法模式:定義了一個用於建立物件的介面,讓子類決定例項化哪一個類, 工廠方法使一個類的例項化延遲到其子類 工廠方法模式:需要一個Creator介面類,一個Product介面類,Creator的具體子類,Product的具體子類

工廠方法模式(Factory Method Pattern)

工廠方法簡介: 工廠方法(Factory Method)模式的意義是定義一個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為一個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系

工廠方法模式-Factory Method Pattern 工廠三兄弟之工廠方法模式(一):日誌記錄器的設計

簡單工廠模式雖然簡單,但存在一個很嚴重的問題。當系統中需要引入新產品時,由於靜態工廠方法通過所傳入引數的不同來建立不同的產品,這必定要修改工廠類的原始碼,將違背“開閉原則”,如何實現增加新產品而不影

工廠方法模式-Factory Method Pattern 工廠三兄弟之工廠方法模式(二):工廠方法模式概述

2 工廠方法模式概述        在簡單工廠模式中只提供一個工廠類,該工廠類處於對產品類進行例項化的中心位置,它需要知道每一個產品物件的建立細節,並決定何時例項化哪一個產品類。簡單工廠模式最大的

設計模式-工廠方法模式(Factory Method Pattern)

工廠方法模式(Factory Method):將建立一個產品的任務,推遲到子類中。核心工廠類不再負責產品的建立。 這樣核心類成為一個抽象工廠。負責具體子類工廠必須實現的介面。這樣的好處是在不改變具體子類工廠的前提下 增加新的產品。 工廠方法模式角色與結構: 抽象工廠角色(

工廠方法模式-Factory Method Pattern 工廠三兄弟之工廠方法模式(四):過載的工廠方法工廠方法的隱藏,工廠方法模式總結

5 過載的工廠方法        Sunny公司開發人員通過進一步分析,發現可以通過多種方式來初始化日誌記錄器,例如可以為各種日誌記錄器提供預設實現;還可以為資料庫日誌記錄器提供資料庫連線字串,為檔

設計模式-03工廠方法模式(Factory Method Pattern)

插曲.簡單工廠模式(Simple Factory Pattern) 介紹工廠方法模式之前,先來做一個鋪墊,瞭解一下簡單工廠模式,它不屬於 GoF 的 23 種經典設計模式,它的缺點是增加新產品時會違背“開閉原則”。 1.模式動機 考慮一個簡單的軟體應用場景,一個軟體系統可以提供多個外觀不同的按鈕(如圓形按鈕、

軟體設計模式——工廠方法模式(Factory Method)

工廠方法模式去掉了簡單工廠模式中工廠方法的靜態屬性,使得它可以被子類繼承。通俗的來說就是把簡單工廠模式裡面的分支語句給去掉,將每個具體產品的例項化過程放到不同的工廠子類中去。相應的角色如下: (1)抽象工廠角色:這是工廠方法模式的核心,它與應用程式無關。是具體

建立型模式--工廠方法模式(Factory Method)

 Factory Method:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a cl

設計模式學習系列之二——工廠方法模式(Factory Method)

工廠模式是我們最常用的模式了,著名的Jive論壇 ,就大量使用了工廠模式,工廠模式在Java程式系統可以說是隨處可見。     為什麼工廠模式是如此常用?因為工廠模式就相當於建立例項物件的new,我們經常要根據類Class生成例項物件,如:     A a = new A (

設計模式-工廠方法Factory Method

log face inf str ace 對象實例 method tee 就是 2018-1-20 by Atlas 應用場景 Template Method Pattern是在父類建立處理邏輯的大綱骨架,而在子類補充具體的處理內容。把Template Method

設計模式(2)——建立型——工廠相關:簡單工廠(Simple factory),工廠方法Factory method),抽象工廠(Abstract factory

概要 這裡試圖描述23個設計模式中的兩個工廠(Factory)相關的設計模式:工廠方法(Factorymethod),抽象工廠(Abstract factory)。 注意點: 這兩個都屬於建立型設計模式。 由於這兩個設計模式都

模板方法模式( Template Method Pattern ): 工廠方法模式的情侶

參考書籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》 模板方法模式和工廠方法模式分別隸屬於行為模式(Behavioral Pattern)和建立類模式(建立型模式),

小菜學習設計模式(三)—工廠方法Factory Method模式

前言 設計模式目錄: 本篇目錄:   其實大家都知道,在工廠方法(Factory Method)模式之前有個簡單工廠模式,也就是靜態工廠方法(Static Factory Method)模式,在簡單工廠模式之前有個我們都熟悉的三層架構模式,那我們就上到下一層一層的來了解下。 三層架構   三

設計模式的征途—3.工廠方法Factory Method模式

上一篇的簡單工廠模式雖然簡單,但是存在一個很嚴重的問題:當系統中需要引入新產品時,由於靜態工廠方法通過所傳入引數的不同來建立不同的產品,這必定要修改工廠類的原始碼,將違背開閉原則。如何實現新增新產品而不影響已有程式碼?工廠方法模式為此應運而生。 工廠方法模式(Factory Method) 學