zoukankan      html  css  js  c++  java
  • 设计模式——工厂方法模式(C++实现)

     1 #include <iostream>
     2 #include <string>
     3 
     4 using namespace std;
     5 
     6 class CProduct
     7 {
     8 public:
     9         virtual void Use() = 0;
    10 };
    11 
    12 class CConcreteProductA: public CProduct
    13 {
    14 public:
    15         virtual void Use()
    16         {
    17                 cout<< "ConCreteProductA....."<< endl;
    18         }
    19 };
    20 
    21 class CConcreteProductB: public CProduct
    22 {
    23 public:
    24         virtual void Use()
    25         {
    26                 cout<< "ConCreteProductB....."<< endl;
    27         }
    28 };
    29 
    30 class CFactory
    31 {
    32 public:
    33         virtual CProduct* FactoryMethod() = 0;
    34 };
    35 
    36 class CConcreteFactoryA: public CFactory
    37 {
    38 public:
    39         virtual CProduct* FactoryMethod()
    40         {
    41                 return new CConcreteProductA();
    42         }
    43 };
    44 
    45 class CConcreteFactoryB: public CFactory
    46 {
    47 public:
    48         virtual CProduct* FactoryMethod()
    49         {
    50                 return new CConcreteProductB();
    51         }
    52 };
    53 
    54 int main(void)
    55 {
    56         CFactory* cFactoryA = new CConcreteFactoryA();
    57         CProduct* cProductA = cFactoryA->FactoryMethod();
    58 
    59         cProductA->Use();
    60 
    61         delete cFactoryA;
    62         delete cProductA;
    63 
    64 
    65         CFactory* cFactoryB = new CConcreteFactoryB();
    66         CProduct* cProductB = cFactoryB->FactoryMethod();
    67 
    68         cProductB->Use();
    69 
    70         delete cFactoryB;
    71         delete cProductB;
    72 
    73         return 0;
    74 }
    75 //////////////////////////////
    76 [wenchaozeng@~/learn_code/design_pattern/6_factory_method]$ ./FactoryMethod       
    77 ConCreteProductA.....
    78 ConCreteProductB.....

    参考:http://design-patterns.readthedocs.io/zh_CN/latest/creational_patterns/factory_method.html

  • 相关阅读:
    小议如何使用APPLY
    SQLServer复制(二)--事务代理作业
    T-SQL—理解CTEs
    jdbc与java.sql
    java设计模式之中介者模式
    fread函数和fwrite函数
    Linux多线程编程(不限Linux)
    poj 3320 技巧/尺取法 map标记
    poj 1260 dp
    HDU 4311 前缀和
  • 原文地址:https://www.cnblogs.com/070412-zwc/p/6800172.html
Copyright © 2011-2022 走看看