• 设计模式学习笔记 1.factory 模式


    Factory 模式

    用户不关心工厂的具体类型,只知道这是一个工厂就行。

    通过工厂的实现推迟到子类里面去来确定工厂的具体类型。

    工厂的具体类型来确定生产的具体产品。

    同时用户不关心这是一个什么样子的产品,只知道这是一个产品

     1 #ifndef _FACTORY_H_
     2 #define _FACTORY_H_
     3 
     4 #include "product.h"
     5 class Factory
     6 {
     7 public:
     8     virtual ~Factory();
     9     virtual Product* createProduct();
    10 protected:
    11     Factory();
    12 private:
    13 };
    14 
    15 class ConcreteFactory : public Factory
    16 {
    17 public:
    18     ConcreteFactory();
    19     ~ConcreteFactory();
    20     Product* createProduct();
    21 protected:
    22 private:
    23 };
    24 
    25 #endif //_FACTORY_H_
     1 #include "factory.h"
     2 #include "product.h"
     3 
     4 Factory::~Factory()
     5 {
     6 
     7 }
     8 
     9 Factory::Factory()
    10 {
    11 
    12 }
    13 
    14 Product* Factory::createProduct() 
    15 {
    16 }
    17 
    18 ConcreteFactory::ConcreteFactory() 
    19 {
    20 
    21 }
    22 
    23 ConcreteFactory::~ConcreteFactory() 
    24 {
    25 
    26 }
    27 
    28 Product* ConcreteFactory::createProduct()
    29 {
    30     return new ConcreteProduct();
    31 }
     1 #ifndef _PRODUCT_H_
     2 #define _PRODUCT_H_
     3 
     4 class Product
     5 {
     6 public:
     7     virtual ~Product();
     8 protected:
     9     Product();
    10 private:
    11 };
    12 
    13 class ConcreteProduct : public Product
    14 {
    15 public:
    16     ConcreteProduct();
    17     ~ConcreteProduct();
    18 protected:
    19 private:
    20 };
    21 
    22 #endif //_PRODUCT_H_
     1 #include "product.h"
     2 #include <stdio.h>
     3 Product::~Product() 
     4 {
     5 
     6 }
     7 
     8 Product::Product() 
     9 {
    10 
    11 }
    12 
    13 ConcreteProduct::ConcreteProduct()
    14 {
    15     printf("hello I'm product
    ");
    16 }
    17 
    18 ConcreteProduct::~ConcreteProduct()
    19 {
    20 }
     1 #include "factory.h"
     2 #include "product.h"
     3 #include <stdio.h>
     4 
     5 int main()
     6 {
     7     Product* pro = NULL;
     8     Factory* fac = new ConcreteFactory();
     9     if(fac)
    10          pro = fac->createProduct();
    11     return 0;
    12 }
  • 相关阅读:
    控制语句
    (小程序)接收用户键盘输入
    运算符
    java doc形成注释文档
    linux中rz、sz命令,zip、unzip命令,sqlite3基本操作
    hash应用-加随机盐保存密码
    非对称/对称加密算法,hash算法
    自签名的应用--数字货币
    HTTPS原理
    Django中app的model相互引用问题
  • 原文地址:https://www.cnblogs.com/superPerfect/p/3778159.html
Copyright © 2020-2023  润新知