zoukankan      html  css  js  c++  java
  • 简单工厂模式

     1 #ifndef SIMPLE_FACTORY_H
     2 #define SIMPLE_FACTORY_H
     3 
     4 #include <iostream>
     5 
     6 class Product
     7 {
     8 public:
     9     virtual void play(void) = 0;    // 没有定义的函数记得声明为纯虚函数
    10 };
    11 
    12 class DVD: public Product
    13 {
    14 public:
    15     void play(void)
    16     {
    17         std::cout << "now play DVD" << std::endl;
    18     }
    19 };
    20 
    21 class CD: public Product
    22 {
    23 public:
    24     void play(void)
    25     {
    26         std::cout << "now play CD" << std::endl;
    27     }
    28 };
    29 
    30 class Creator
    31 {
    32 public:
    33     enum PRODUCT_TYPE
    34     {
    35         TYPE_DVD,
    36         TYPE_CD
    37     };
    38 
    39     Product* factory(PRODUCT_TYPE type) {
    40         switch (type) {
    41         case TYPE_DVD:
    42             return new DVD;
    43         case TYPE_CD:
    44             return new CD;
    45         default:
    46             return NULL;
    47         }
    48     }
    49 };
    50 
    51 #endif // SIMPLE_FACTORY_H

    下面是使用的代码

     1 #include "SimpleFactory.h"
     2 
     3 int main(void)
     4 {
     5     Creator creator;
     6     Product* dvd = creator.factory(Creator::TYPE_DVD);
     7     Product* cd = creator.factory(Creator::TYPE_CD);
     8 
     9     dvd->play();
    10     cd->play();
    11 
    12     return 0;
    13 }

    输出为

    now play DVD
    now play CD
  • 相关阅读:
    Django REST framework 1
    爬虫基本原理
    QueryDict对象
    Django组件ModelForm
    MongoDB
    Algorithm
    BOM
    CSS
    Vue
    AliPay
  • 原文地址:https://www.cnblogs.com/wendellyi/p/3407128.html
Copyright © 2011-2022 走看看