设计模式一 工厂模式(3)
来源:互联网 发布:mysql substring 编辑:程序博客网 时间:2024/04/29 12:03
回顾上一节:
我们利用面向对象方法把计算器的输入和计算做作为一个类来对待,然后利用继承特性让加减乘除来继承该类实现了修改或者添加一个新的运算不影响其他的运算。如何去实例化对象成了我们的问题。
方案:简单工厂模式,也就是说到底要实例化谁,将来会不会增加实例化的对象,比如开根运算,这是很容易变化的地方,应该考虑单独一个类来做这个创造实例化的过程,即工厂.
public class OperationFactory
{
public static Operation createOperate(string operate)
{
Operation oper = null;
switch (operate)
{
case "+":
oper = new OpertionAdd(); //+
break;
case "-":
oper = new OpertionSub();// -
break;
case "*":
oper = new OpertionMul();
break;
case "/":
oper = new OpertionDiv();
break;
}
}
}
客户端代码
Operation oper;
oper = OperationFactory.createFactory("+");
oper.NumberA=1;
oper.NumberB=2;
double result =oper.GetResult();
这样不管你是控制台程序,windows程序,web程序,PDA或手机程序,都可以用这段代码来实现计算器功能。若有一天我们需要更改加法运算,只需要改OperationAdd就可以了。若需要增加平方根等运算,只需要增加相应的运算子类就可以了。来看下他们的结构图:
说明: 黑色实心 表示关联 即 一个类要知道了解更一个类
虚心实线 表示继承关系
- 设计模式一 工厂模式(3)
- 设计模式一:工厂模式
- 设计模式(一)----工厂模式
- 工厂设计模式一 简单工厂模式
- 设计模式--工厂设计模式(一)
- 设计模式一 简单工厂设计模式
- 设计模式一 简单工厂
- 设计模式一:工厂方法
- 设计模式一:简单工厂
- Java设计模式:工厂模式(一)简单工厂模式
- JAVA--简单工厂模式,工厂方法模式--设计模式一
- 设计模式之工厂模式(一)之简单工厂模式
- <设计模式>(3)工厂模式
- .NET中的设计模式一:工厂模式
- .NET中的设计模式一:工厂模式
- C++ 设计模式 (一) 工厂模式
- 设计模式一 工厂模式 (1)
- 设计模式一 工厂模式 (2)
- windows下GSL的配置
- 洛克人X8好玩的来说句话
- 赚钱,吆喝,二者不可兼得? -- 移动互联网山寨AppStore的暴富者以及危机
- 《ELF格式解析》完成,发布1.0版
- 一个小问题害死人。 看不见得错误!
- 设计模式一 工厂模式(3)
- 论调用约定
- iis 编译器错误信息: CS0016: 未能写入输出文件 解决方法
- 乱弹之企业应用
- JAVA虚拟机的平台无关性
- 类型初始值设定项引发异常
- 后台应用如何Alert黑莓手机用户
- LOSF 命令说明
- 深入剖析Spring Web源码(十四) - 处理器映射,处理器适配器以及处理器的实现 - 处理器的实现架构 - 注解控制器