派生类&简单工厂模式
派生类&简单工厂模式
git链接:
Operation3.1.1
题目描述的代码部分的解释
首先是声明一个Rand类作为父类,然后两个子类RandNumber类和RandOperation类,分别是随机生成0~9的数字和各种符号。
如果加上工厂的话,就是再写个RandFactory类,然后生产不同的两个类对象。(不过我写了工厂,代码中具体却没有实现它,感觉用不到。)
class Rand
{
public:
virtual int randNum(); //随机数0-9 所以子类RandNumber可以不用重写该方法了
};
class RandNumber : public Rand
{
public: //默认构造析构函数了。
};
class RandOperation : public Rand
{
public:
int randNum(); //重写生成随机数 对应不同的符号
char symbol(int i); //生成符号
};
class RandFactory // 随机数工厂
{
public:
Rand* create(int type) //创建产品 ,由type来决定哪个产品
{
Rand* temp = NULL;
switch(type)
{
case 1: temp = new RandNumber();
break;
case 2: temp = new RandOperation();
break;
default:
break;
}
return temp;
}
};
简单工厂模式的学习
对于这个学习的话,我是通过看别人的博客心得,毕竟这也是一种设计模式(工厂模式、抽象工厂模式之类的等等),或者看看官方文档。不过看别人写得文章就已经可以很好的理解了。
所谓的简单工厂模式,通过参数传递来决定要创建哪一个具体产品。
若不需延迟实例化(将实例化放到子类中),则在Factory中增加对应的创建方法即可,如:Product* CreateConcreteProduct(int i);
若需要延迟实例化,则在抽象Factory与具体ConcreteFactory中增加相应方法,在ConcreteFactory中实现方法Product* CreateConcreteProduct(int i)
派生类&简单工厂模式的更多相关文章
- JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式
/** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person(&qu ...
- 第一天:简单工厂模式与UML类图
何为简单工厂模式: 通过专门定义一个类,来负责创建其他类的实例,这些其它类通常具有共同的父类. 简单工厂模式的UML类图: 简单工厂模式中包含的角色和相应的职责如下: ...
- 1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
1.使用简单工厂模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...
- 简单工厂模式(Simple Factory Pattern)
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂 ...
- Java设计模式之工厂模式(简单工厂模式+工厂方法模式)
摘自http://blog.csdn.net/jason0539/article/details/23020989 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是 ...
- Headfirst设计模式的C++实现——简单工厂模式(Simple Factory)之二
为了引出后续的工厂方法,把在简单工厂模式的基础上增加了新功能——加盟店 简而言之就是把原来的单一简单工厂(能生产cheese和greek两种pizza)细分成了纽约地区的和芝加哥地区的(每种地区都能生 ...
- C#设计模式之简单工厂模式
简单工厂模式解释: 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern) 是通过专门定义一 ...
- Java设计模式之(工厂模式)--简单工厂模式--工厂方法模式--抽象工厂模式
工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...
- .Net简单工厂模式,工厂模式,抽象工厂模式实例
1.定义 简单工厂模式:是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 工厂模式:定义一个用于创建对象的接口, ...
随机推荐
- ICP点云配准原理及优化
ICP算法简介 根据点云数据所包含的空间信息,可以直接利用点云数据进行配准.主流算法为最近迭代算法(ICP,Iterative Closest Point),该算法是根据点云数据首先构造局部几何特征, ...
- 难度并不NOIP的NOIP模拟赛
今天老师请了前几届的学长来讲课,可是讲课为什么要考试呢... 学长说难度是NOIP,于是我就naive的跟着参加了,然而T3难度并不友好,感觉确实不是很适合我们现在做......不过课本来也不是给我们 ...
- cmd那个命令是查看端口情况的?
netstat -a查看开启哪些端口netstat -n查看端口的网络连接情况netstat -v查看正在进行的工作netstat -p tcp/ip查看某协议使用情况netstat -s 查看正在使 ...
- pam_frpintd.so 错误修复
PAM unable to dlopen(/lib64/security/pam_fprintd.so): /lib64/security/pam_fprintd.so: cannot open sh ...
- 谷歌开源漏洞跟踪工具 Monorail 存在跨站点搜索漏洞
一名安全研究员表示,在谷歌开源漏洞跟踪工具 Monorail 中找到一个漏洞,可被用于执行跨站点搜索 (XS-Search) 攻击. Monorail 用于检查和 Chromium 相关项目中的问题, ...
- HDU 1269 迷宫城堡(判断有向图强连通分量的个数,tarjan算法)
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- CUDA2.4-原理之性能优化及浮点运算
本部分来自于<大规模并行处理器编程实战>第六章.第七章.打算不再看这本书了,准备看<programming massively parallel processors 2nd> ...
- 20155229《网络对抗技术》Exp6:信息收集与漏洞扫描
实验内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 (4)漏洞扫描:会扫,会看报告,会查漏洞说明,会修补 ...
- Luogu P1273 有线电视网
最近写DP写得比较多了 但是POJ上的题目太傻比了而且不想看英文的题面,然后就在Luogu的试炼场里找了一个DP EX专题写了一下(大概3days吧,一天一题差不多) 这是一道比较简单的DP 话说树形 ...
- EZ 2018 04 06 NOIP2018 模拟赛(七)
我是链接 这次是真的惨,码了将近2hours的可持久化线段树炸掉了! 而且本地拍了一万年也没发现哪里炸了. T1 压位的入门题,话说这道题能拿个99分就可以了(100分要FFT) 对于暴力,就是暴力找 ...