博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单工厂模式
阅读量:6315 次
发布时间:2019-06-22

本文共 1380 字,大约阅读时间需要 4 分钟。

1       简单工厂模式

1.1     问题

用任意一种面向对象语言实现一个计算器控制程序,要求输入两个数和运算符号,得到结果。

1.2     知识点

  • 命名要规范,有意义
  • 可维护性、可复用性、可扩展性
  • 避免重复代码,重复代码用函数或宏等
  • 计算和显示分开
  • 模块划分要合理
  • 保证修改无关性(修改一个方面就不造成另一方面的损失)

1.3     简单工厂模式

1.3.1  说明

简单工厂模式由一个工厂对象决定创建出哪一种产品的实例。简单工厂模式是工厂式家庭中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

1.3.2  UML

 

1.3.3  代码

#ifndef OPERATOR_H_ #define OPERATOR_H_ //基类 class Operator {
public: double m_numberA; double m_numberB; virtual double GetResult() {
double result=0; return result; } }; //加法类 class OperatorAdd:public Operator {
virtual double GetResult() {
return m_numberA+m_numberB; } }; //减法类 class OperatorSub:public Operator {
virtual double GetResult() {
return m_numberA-m_numberB; } }; //乘法类 class OperatorMul:public Operator {
virtual double GetResult() {
return m_numberA*m_numberB; } }; //除法类 class OperatorDiv:public Operator {
virtual double GetResult() {
if(m_numberB==0) {
return 0; } return m_numberA/m_numberB; } }; //工厂类 class OperatorFactory {
public: static Operator *CreateOpreator(char operatorChar) {
Operator *oper=0; switch(operatorChar) {
case '+': oper=new OperatorAdd(); break; case '-': oper=new OperatorSub(); break; case '*': oper=new OperatorMul(); break; case '/': oper=new OperatorDiv(); break; } return oper; } }; #endif

 

转载地址:http://gtkaa.baihongyu.com/

你可能感兴趣的文章
Python编程语言
查看>>
十四、转到 linux
查看>>
Got error 241 'Invalid schema
查看>>
ReferenceError: event is not defined
查看>>
男人要内在美,更要外在美
查看>>
为什么要跟别人比?
查看>>
app启动白屏
查看>>
Oracle 提高查询性能(基础)
查看>>
学习知识应该像织网一样去学习——“网状学习法”
查看>>
Hadoop集群完全分布式安装
查看>>
QString,char,string之间赋值
查看>>
我的友情链接
查看>>
Nginx+mysql+php-fpm负载均衡配置实例
查看>>
MySql之基于ssl安全连接的主从复制
查看>>
informix的逻辑日志和物理日志分析
查看>>
VMware.Workstation Linux与windows实现文件夹共享
查看>>
ARM inlinehook小结
查看>>
wordpress admin https + nginx反向代理配置
查看>>
管理/var/spool/clientmqueue/下的大文件
查看>>
mysql dba系统学习(20)mysql存储引擎MyISAM
查看>>