Design Pattern - Factory - 设计模式 - 工厂

2014-11-23 19:47:18 · 作者: · 浏览: 16

Create All kinds of guns.

设计重点:

1 基类作接口

2 继承类是各种不同的类

3 构建工厂类,然后根据需要创造不同的类,可以传入关键字,或者索引等。


#pragma once
#include 
  
   
#include 
   
     using namespace std; //Base class class Gun { public: virtual string description() { return "Generic Gun"; } }; //Derived class class MachineGun :public Gun { public: string description() { return "MachineGun - Gun for fast shoot"; } }; class LaserGun : public Gun { public: string description() { return "LaserGun - Melt everything with heat"; } }; class ShockwaveGun :public Gun { public: string description() { return "ShockwaveGun - shock down everything"; } }; class GofFactory_Gun { public: GofFactory_Gun() { } Gun *createGun(const string &type) { if ("MachineGun" == type) { return (new MachineGun); } else if ("LaserGun" == type) { return (new LaserGun); } else if ("ShockwaveGun" == type) { return (new ShockwaveGun); } else { return NULL; } } }; void GofFactory_Gun_Run() { GofFactory_Gun gofGun; Gun *g = gofGun.createGun("MachineGun"); cout<
    
     description()<
     
      description()<
      
       description()<
       
        
结果: