1. 程式人生 > >簡單工廠模式/靜態工廠模式(Static Factory Method) C++實現

簡單工廠模式/靜態工廠模式(Static Factory Method) C++實現

#include <iostream>

using namespace std;

typedef enum ProductType {
    TypeA,
    TypeB
} PRODUCTTYPE;

class AbsProduct {
public :
    virtual void draw() = 0;
};

class ProductA : public AbsProduct{
public :
    virtual void draw() {
        cout << "ProductA" << endl;
    }
};

class ProductB : public AbsProduct{
public :
    virtual void draw() {
        cout << "ProductB" << endl;
    }
};

class SimpleFatory {
public :
    static AbsProduct * getProduct(PRODUCTTYPE type) {
        AbsProduct * product = NULL;
        if(type == TypeA) {
            product = new ProductA();
            // do some thing
        } else if(type == TypeB) {
            product = new ProductB();
            // do some thing
        }
        return product;
    }
};

int main() {
    AbsProduct * product1 = SimpleFatory::getProduct(TypeA);
    AbsProduct * product2 = SimpleFatory::getProduct(TypeB);

    if(product1 != NULL)
        product1->draw();
    if(product2 != NULL)
        product2->draw();

    delete product1;
    product1 = NULL;
    delete product2;
    product2 = NULL;

    return 0;
}


相關推薦

簡單工廠模式/靜態工廠模式Static Factory Method C++實現

#include <iostream> using namespace std; typedef enum ProductType { TypeA, TypeB } PRODUCTTYPE; class AbsProduct { public : virtual vo

設計模式-簡單工廠模式/靜態工廠方法Static Factory Method

使用原因 同一個呼叫,需要不同物件。統一通過工廠生產不同物件,建立物件的邏輯在工廠中。 定義 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(Static Factory Method)模式,不屬於23種GOF設計模式。簡單工廠模式是由一個工廠物件決定創建出哪一種產品類

簡單工廠模式靜態工廠方法Static Factory Method模式

    簡單工廠模式 所謂的簡單工廠模式-----------這裡百度百科裡面的解釋:簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(Static Factory Method)模式,但不屬於23

AVL樹自平衡樹——c++實現

html pub private 檢查 具體實現 htm lose show data- AVL樹是高度平衡的而二叉樹。它的特點是:AVL樹中任何節點的兩個子樹的高度最大差別為1。 AVL樹本質上還是一棵二叉搜索樹,它的特點是: 1.本身首先是一棵二叉

Personal deposit calculator個人存款計算器C#實現----需求分析

參考招商銀行 個人存款計算器:http://www.cmbchina.com/CmbWebPubInfo/Cal_Saving_Per.aspx?chnl=ckjsq 需求分析,先上圖,有了這張圖需求分析完成一大半了 具體存款種類 2.1 初始介面

【LeetCode】1. Two Sum兩數之和-C++實現的兩種方法

本題是一下公司的面試題: 問題描述:   問題求解: 使用無序容器unorder_map實現: #include <iostream> #include <vector> #include <cassert> #inclu

最大堆最小堆C++實現原始碼

寫在前面 最近漸漸愛上寫部落格,覺得每天學到的知識需要保鮮,寫的原始碼也能及時與大家分享,接下來進入正題。 最大堆(最小堆) 最大堆(最小堆)是非常重要的資料結構,公司面試時經常會被問到,在這裡,我不會詳細介紹它的原理,而是介紹它的適用場景以及兩種寫法

抽象工廠模式Abstract Factory Pattern簡單&粗暴解析

1.前言 在之前的文章設計模式(Design pattern):簡單&粗暴解析中已經為大家深入淺出解析了 設計模式 的 七大原則、三大型別。 本文為大家解析三大型別中 建立型 裡其中的 抽象工廠模式。 文章中例項  linhaojian的Git

簡單工廠模式Easy Factory Pattern簡單&粗暴解析

1.前言 在之前的文章設計模式(Design pattern):簡單&粗暴解析中已經為大家深入淺出解析了 設計模式 的 七大原則、三大型別。 本文為大家解析三大型別中 建立型 裡其中的 簡單工廠模式。 文章中例項  linhaojian的Git

設計模式--靜態工廠簡單工廠方法案例分析

簡介 1.學習本篇文章,瞭解簡單工廠設計模式的使用場景。 2.如何使用簡單工廠模式。 3.簡單工廠模式能解決什麼問題? 場景 現在有一家外賣小店需要從生產一份外賣開始進行考慮設計,當客戶在網上點出不同味道的菜時,外賣小店就將按照不同的訂單進行生產出菜品,然後進行打包、等待外賣

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

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

簡單介紹工廠模式(靜態工廠和抽象工廠)

註明 : 以下整理的資料來源於實驗樓網站.      工廠模式(Factory Pattern)的意義就跟它的名字一樣,在面向物件程式設計中,工廠通常是一個用來建立其他物件的物件。工廠模式根據不同的引數來實現不同的分配方案和建立物件。    

Android之大話設計模式--簡單工廠模式(靜態工廠方法模式)

簡單工廠模式解釋: 簡單工廠模式(Simple Factory Pattern)屬於類的創新型模式,又叫靜態工廠方法模式(Static Factory Method Pattern),是通過專門定義一個類來負責建立其他類的例項,被建立的例項通常都具有相同的父親。 UML圖:

簡單工廠模式simple factory pattern

vs2005+C#+.net 2.0  using System;using System.Collections.Generic;using System.Text;namespace SimpleFactoryPattern...{    publicclass S

建立型模式——簡單工廠模式Simple Factory Pattern

開頭  我們可以將設計模式分為三大類,分別為建立型模式、結構型模式、行為型模式,每種模式有著各自的特點。  建立型模式——它是用來描述如何建立物件的。  思維導圖:建立型模型分類建立型模式又分為簡單工廠

簡單工廠模式Simple Factory Pattern學習

書籍:《C#設計模式》(《C# Design Patterns:A Tutorial》) 【美】 James W.Cooper 著  張志華 劉雲鵬 等譯 簡單工廠模式:簡單工廠類根據提供給它的資料,返回幾個可能類中的一個類的例項。通常它返回的類都有一個共同的父類和共同的方

設計模式學習筆記--簡單工廠模式Simple Factory Pattern【建立型模式

簡單工廠模式: 工廠是用來生成產品的,簡單工廠,說明工廠能力有限因此只生成一個系列的產品。 此係列產品提供一個產品抽象,具體的產品在派生產品中進行實現。 簡單工廠(一個類),用來管理這個系列產品的生產。工廠中會有一個creat(char* name)成員函式name是需要生

設計模式-3簡單工廠模式Simple Factory Pattern

一、引言 在面向物件程式設計中, 最通常的方法是一個new操作符產生一個物件例項,new操作符就是用來構造物件例項的。但是在一些情況下, new操作符直接生成物件會帶來一些問題。舉例來說, 許多型別物件的創造需要一系列的步驟: 你可能需要計算或取得物件的初始

工廠方法模式Factory Method

method 客戶端代碼 console 實例化 turn 簡單工廠 actor () blog 工廠方法模式:定義一個用於創建對象的接口,讓子類來決定實例化哪一個類。工廠方法使一個類的實例化延遲到子類。 簡單工廠模式的最大有點在於工廠勒種包含了必要的邏輯判斷,根據客戶

2,抽象工廠模式Abstract Factory Pattern 抽象工廠可以一下生產一個產品族裏面有很多產品組成

creat name hba abstract 模式 存在 names cto 園區 備註  工廠模式:要麽生產香蕉、要麽生產蘋果、要麽生產西紅柿;但是不能同時生產一個產品組。     抽象工廠:能同時生產一個產品族。===》抽象工廠存在原因 解釋 : 具體工廠