Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1436489
  • 博文数量: 241
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2253
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-11 22:27
个人简介

--

文章分类

全部博文(241)

文章存档

2021年(3)

2019年(6)

2018年(1)

2017年(9)

2016年(21)

2015年(50)

2014年(125)

2013年(26)

我的朋友

分类: C/C++

2014-02-21 11:17:55

简单工厂模式:

UML图


代码:
Operation:

点击(此处)折叠或打开

  1. #include "Operation.h"
  2. #include <iostream>

  3. Operation::Operation(void)
  4. {
  5. }

  6. Operation::~Operation(void)
  7. {
  8. }

  9. double Operation::GetResult()
  10. {
  11.     return 0;
  12. }

  13. double Operation::getNum1()
  14. {
  15.     return num_1;
  16. }
  17. double Operation::getNum2()
  18. {
  19.     return num_2;
  20. }
  21. void Operation::setNum1(double data)
  22. {
  23.     num_1 = data;
  24. }
  25. void Operation::setNum2(double data)
  26. {
  27.     num_2 = data;
  28. }
ADD:

点击(此处)折叠或打开

  1. ADD::ADD(void)
  2. {
  3. }

  4. ADD::~ADD(void)
  5. {
  6. }
  7. double ADD::GetResult()
  8. {
  9.     return Operation::getNum1()+Operation::getNum2();
  10. }
SUB:

点击(此处)折叠或打开

  1. MINUS::MINUS(void)
  2. {
  3. }

  4. MINUS::~MINUS(void)
  5. {
  6. }
  7. double MINUS::GetResult()
  8. {
  9.     return Operation::getNum1()-Operation::getNum2();
  10. }
Factory:

点击(此处)折叠或打开

  1. Factory::Factory(void)
  2. {
  3. }

  4. Factory::~Factory(void)
  5. {
  6. }
  7. Operation* Factory::CreateFactory(char cal)
  8. {
  9.     Operation* op;
  10.     switch(cal)
  11.     {
  12.     case '+':
  13.             op = new ADD();
  14.             break;
  15.     case '-':
  16.             op = new MINUS();
  17.             break;
  18.     }
  19.     return op
  20. }
主函数:

点击(此处)折叠或打开

  1. int main()
  2. {
  3.     double a,b;
  4.     char op;
  5.     cin>>a>>b;
  6.     cin>>op;

  7.     Factory fac;
  8.     Operation* test = fac.CreateFactory(op);
  9.     test->setNum1(a);
  10.     test->setNum2(b);
  11.     cout<<test->GetResult()<<endl;
  12. }
阅读(598) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~