Chinaunix首页 | 论坛 | 博客
  • 博客访问: 164641
  • 博文数量: 60
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 638
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:59
个人简介

喜欢coding,因为那是一件伟大的事情,是将无生命的IC赋予灵魂的过程,让我拥有了和上帝一样的成就感。(w1c2g3@163.com)

文章分类

全部博文(60)

文章存档

2017年(7)

2016年(41)

2015年(1)

2014年(4)

2013年(7)

我的朋友

分类: C/C++

2016-10-30 22:46:08




  1. #include <iostream>
  2. #include <string>


  3. using namespace std;


  4. struct AbstractProduct {
  5.     virtual void operation() = 0;
  6. };

  7. struct ProductA : public AbstractProduct {
  8.     void operation() {
  9.         cout << "ProductA" << endl;
  10.     }
  11. };

  12. struct ProductB : public AbstractProduct {
  13.     void operation() {
  14.         cout << "ProductB" << endl;
  15.     }
  16. };


  17. struct AbstractFactory {
  18.     virtual AbstractProduct *createProduct(int type) = 0;
  19. };

  20. struct SimpleFactory : public AbstractFactory {
  21.     AbstractProduct *createProduct(int type) {
  22.         switch (type) {
  23.             case 1: new ProductA(); break;
  24.             case 2: new ProductB(); break;
  25.             default: break;
  26.         }
  27.     }
  28. };


  29. int main(int argc, char **argv)
  30. {
  31.     AbstractFactory *factory = new SimpleFactory();

  32.     AbstractProduct *p1 = factory->createProduct(1);
  33.     p1->operation();
  34.     delete p1;

  35.     AbstractProduct *p2 = factory->createProduct(2);
  36.     p2->operation();
  37.     delete p2;

  38.     delete factory;

  39.     return 0;
  40. }

阅读(592) | 评论(0) | 转发(0) |
0

上一篇:抽象工厂模式

下一篇:单件模式

给主人留下些什么吧!~~