大话设计模式 简单工厂模式
读了一下大话设计模式这本书,发现非常不错,现在把练习的代码贴上来,,当然写得很烂,欢迎大家指正。
第一章:
SimpleFactory.h
#ifndef SIMPLEFACTORY_H
#define SIMPLEFACTORY_H
#include <string>
using namespace std;
class Operate
{
protected:double NumA=0.;double NumB=0.;
public:Operate()=default;Operate(double NumA_, double NumB_) :NumA(NumA_), NumB(NumB_){};virtual double GetResult(){return 0.;}
};
class OperAdd :public Operate
{
public:OperAdd() = default;OperAdd(double NumA_, double NumB_) :Operate(NumA_, NumB_){};double GetResult() override{return NumA + NumB;}};class OperSub :public Operate
{
public:OperSub() = default;OperSub(double NumA_, double NumB_) :Operate(NumA_, NumB_){};double GetResult() override{return NumA - NumB;}
};
class OperMult :public Operate
{
public:OperMult() = default;OperMult(double NumA_, double NumB_) :Operate(NumA_, NumB_){};double GetResult() override{return NumA*NumB;}
};
class OperDiv :public Operate
{
public:OperDiv() = default;OperDiv(double NumA_, double NumB_) :Operate(NumA_, NumB_){};double GetResult() override{if (NumB == 0.)throw "除数为0";return NumA / NumB;}};
class SimpleFactory
{
public:SimpleFactory() = default;double SwithOpra(const char OP, double NumA_, double NumB_){switch (OP){case '+':{OperAdd add=OperAdd(NumA_, NumB_);return add.GetResult();break;}case '-':{OperSub sub = OperSub(NumA_, NumB_);return sub.GetResult();break;}case '*':{OperMult mult = OperMult(NumA_, NumB_);return mult.GetResult();break;}case '/':{OperDiv div = OperDiv(NumA_, NumB_);return div.GetResult();break;}default:break;}}
};
#endif
main.cpp
#include "SimpleFactory.h"
#include <iostream>
using namespace std;
int main()
{SimpleFactory fac ;cout << fac.SwithOpra('+', 1., 2.) << endl;cout << fac.SwithOpra('-', 1., 2.) << endl;cout << fac.SwithOpra('*', 1., 2.) << endl;cout << fac.SwithOpra('/', 1., 2.) << endl;system("pause");return 0;
}
大话设计模式 简单工厂模式相关推荐
- 研磨23种大话设计模式------简单工厂模式 + 工厂方法模式 + 抽象工厂模式
大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文 get 到有用的干货知识,请帮忙点个赞呗,据说点赞的都拿到了offer 简 ...
- JavaScript设计模式--简单工厂模式例子---XHR工厂
JavaScript设计模式--简单工厂模式例子---XHR工厂 第一步,Ajax操作接口(目的是起一个接口检测作用) (1)引入接口文件 //定义一个静态方法来实现接口与实现类的直接检验 //静态方 ...
- 三角形圆形创建与擦除java_设计模式---------------简单工厂模式
设计模式---------------简单工厂模式 一.题目(Question) 使用简单工厂模式设计一个可以创建不同几何形状(如圆形.方形和三角形等)的绘图工具,每个几何图形都要有绘制draw()和 ...
- 设计模式—简单工厂模式
前言 简单工厂模式是一种比较容易理解的设计模式 简单工厂模式介绍 在设计模式中,简单工厂模式可以理解为负责生产对象的一个类,当使用new 关键字创建一个对象时,此时该类就依赖于这个对象,也就是他们间的 ...
- 设计模式 - 简单工厂模式
文章目录 设计模式 - 简单工厂模式 1.意图 2.实例 1.创建颜色接口 - 定义生产的产品是什么 2.创建颜色枚举 - 定义生产哪些类型的产品 3.根据颜色枚举创建产品 - 根据产品清单生产产品 ...
- 设计模式--简单工厂模式
什么是工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对 ...
- linkin大话设计模式--简单工厂
linkin大话设计模式--工厂方法 什么是工厂方法:将多个类对象交给工厂来生成的设计被称为简单工厂模式,个人认为主要是为了实现解耦,在代码重构的时候会很重要. 代码如下: public class ...
- C#设计模式--简单工厂模式
设计模式: 简单工厂模式(Simple Factory Pattern) 介绍:简单工厂模式不是Gof23种设计模式之一.但它在实际的编程中经常被用到,而且思想也非常简单,下面简单举例说明: 简单工厂 ...
- C++设计模式--简单工厂模式
概述 工厂模式:封装对象的实现.它可能是所有设计模式中最有用的模式之一了.这里要说的是简单工厂模式,又称为静态方法工厂模式,属于创建性模式.其原理就是通过传入的参数来判断应该创建什么对象. UML 类 ...
最新文章
- 在vue中使用babel-polyfill
- 优化系统后VS启动不了问题的一种解决方案
- 雨林木风Ghost Win7 SP1 装机版 YN2012.05
- 找工作这几天遇到的骗人套路
- 整蛊偷快递的家伙!不愧是 NASA 工程师
- Magento: 自定义用户登录导向页面 Redirect Customer to Previous Page After Login
- 优秀ppt作品范例_毕业论文答辩ppt模板优秀范例
- php继承exten,es6,extends_react中通过extend继承,父组件为什么能访问子组件的属性,es6,extends,react.js - phpStudy...
- 看看能不能发推广链接。。。。。
- C/C++学习路线(总体把握C/C++)
- ActiveRecord 复合主键时 实体转换为DataRow
- 机器人教室外墙_智慧教室解决方案-机器人创客教室布局设计
- 2020抖音最新版去水印方法
- 计算机无法从硬盘启动怎么办,电脑开机无法引导硬盘启动怎么解决
- 魔方机器人需要特制魔方吗_大开眼界:会玩魔方的机器人
- 视觉SLAM中的公制尺度(metric scale)
- Discuz!无法连接阿里云RDS数据库代理问题的处理方案
- Ardunio开发实例-ENC28J60以太网模块实现Web服务器
- 2019年中国研究生数学建模竞赛D题 汽车行驶工况构建【信息交流】
- java解析JT808协议