简单工厂模式的学习
来源:互联网 发布:vb语言基础 编辑:程序博客网 时间:2024/05/16 04:35
最近一直在看有关设计模式的东西,现在就开始第一个设计模式,简单工厂模式,简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
根据传入的运算符号,实例化具体的元算对象,并且返回。
下面是一个简单的计算机的例子
1、首先要有一个父类(其实接口什么的也可以)
public abstract class Operation { public double NumberA { get; set; } public double NumberB { get; set; } abstract public double GetResult(); }作为父类,里面的GetReslt的方法是不实现的,所以我就将这个类声明为抽象类
下面就是具体的加减乘除算法
class OperationAdd : Operation { public override double GetResult() { return NumberA + NumberB; } } class OperationSub : Operation { public override double GetResult() { return NumberA - NumberB; } } class OperationMul : Operation { public override double GetResult() { return NumberA + NumberB; } } class OperationDiv : Operation { public override double GetResult() { return NumberA + NumberB; } }
每个计算类都继承Operation(为了偷懒,将类都写在一个文件里了,可以将它们分开的)
public static Operation CreateOperation(String temp) { Operation oper = null; switch (temp) { case "+": oper = new OperationAdd(); break; case "-": oper = new OperationSub(); break; case "*": oper = new OperationMul(); break; case "/": oper = new OperationDiv(); break; } return oper; }
根据传入的运算符号,实例化具体的元算对象,并且返回。
客户端具体使用方法
Operation add = OperationFactory.CreateOperation("+"); add.NumberA = Double.Parse(txtA.Text); add.NumberB = Double.Parse(txtB.Text); MessageBox.Show(add.GetResult().ToString());
所有上述代码是基本基于大话设计模式,本人只是根据大话设计模式的进行学习
源代码:http://download.csdn.net/detail/freedomhjb/5020497
- 简单工厂模式的学习
- 简单工厂,工厂, 抽象工厂模式的学习与比较
- 简单工厂模式学习
- 简单工厂模式学习
- 学习简单工厂模式
- 简单工厂模式学习
- 简单工厂模式学习
- php核心学习-设计模式的学习-简单工厂模式
- 简单的工厂模式
- 简单的工厂模式
- 简单的工厂模式
- 简单的工厂模式
- 简单的工厂模式
- 简单的工厂模式
- 简单的工厂模式
- 我的设计模式学习之路--简单工厂模式
- 设计模式的学习-(2)简单工厂模式
- 简单工厂模式学习博客
- Python常用模块
- early_param和__setup宏
- SNMP学习笔记
- 自动拆箱和装箱
- [cocos2d-x]关于是否继承CCSprite,以及关于继承初始化时候的未知问题
- 简单工厂模式的学习
- 从IE复制数据到Word ,其中发生了什么?
- hibernate4.1.2使用ehcache2.4.3实现二级缓存时报错
- 数字高程模型和地图——thematicmapping.org译文(一)
- QQ2013在Win7下运行报错
- MySQL索引类型一览 让MySQL高效运行起来
- Android4.1输入系统参数配置和输入事件校准
- oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法
- 游戏后台设计考虑点(来自工作实践中的一些经验)