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) 學