简单工厂模式学习
来源:互联网 发布:电脑没有网络怎么办 编辑:程序博客网 时间:2024/05/30 04:14
在设计模式中,用到最多的就是工厂模式了,工厂模式又分为:简单工厂模式、抽象工厂模式、工厂方法模式,而在工厂中,我用到最多就是简单工厂模式,简单工厂模式的优点在我看来就是:
扩展性比较好,因为各具体实现类都继承自父类,如果再增加一个类似操作方法类,那就让此类再次继承自父类,在工厂类中添加一个判断就行了,而不用修改原来的实现类。
其它的还未体会到,先贴一段具体代表性的代码吧,从《大话设计模式》中摘抄。
class Program { static void Main(string[] args) { Operation m_Operation = OperationFactory.createOperation("+"); m_Operation.NumberA = 10; m_Operation.NumberB = 8; Console.Write("结果是:{0}",m_Operation.GetResult().ToString()); Console.Read(); } } /// <summary> /// 操作基类 /// </summary> public class Operation { private double m_NumberA = 0; public double NumberA { get { return m_NumberA; } set { m_NumberA = value; } } private double m_NumberB = 0; public double NumberB { get { return m_NumberB; } set { m_NumberB = value; } } public virtual double GetResult() { double result = 0; return result; } } /// <summary> /// 加法类 /// </summary> class OperationAdd : Operation { public override double GetResult() { double result = 0; result = this.NumberA + this.NumberB; return result; } } /// <summary> /// 减法 /// </summary> class OperationSub : Operation { public override double GetResult() { double result = 0; result = this.NumberA - this.NumberB; return result; } } /// <summary> /// 乘法 /// </summary> class OperationMul : Operation { public override double GetResult() { double result = 0; result = this.NumberA * this.NumberB; return result; } } /// <summary> /// 除法 /// </summary> class OperationDiv : Operation { public override double GetResult() { double result = 0; if (NumberB == 0) { throw new Exception("除数不能为0!"); } result = this.NumberA / this.NumberB; return result; } } public class OperationFactory { public static Operation createOperation(string p_Operation) { Operation m_Operation = null; switch (p_Operation) { case "+": m_Operation = new OperationAdd(); break; case "-": m_Operation = new OperationSub(); break; case "*": m_Operation = new OperationMul(); break; case "/": m_Operation = new OperationDiv(); break; } return m_Operation; } }
- 简单工厂模式学习
- 简单工厂模式学习
- 学习简单工厂模式
- 简单工厂模式学习
- 简单工厂模式学习
- 简单工厂模式学习博客
- 简单工厂模式学习笔记
- 学习笔记:简单工厂模式
- 设计模式学习-简单工厂
- 简单工厂模式的学习
- 学习笔记:简单工厂模式
- 简单工厂模式学习总结
- 简单工厂模式--结合实例学习简单工厂模式
- 设计模式学习之工厂模式(简单工厂模式)
- 设计模式学习之简单工厂模式和工厂模式
- 简单工厂,工厂, 抽象工厂模式的学习与比较
- 设计模式学习之简单工厂、工厂方法、抽象工厂
- java学习之工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- datagrid控件
- 欢迎访问互联网进化论官方网站
- ASP数据集对象用法介绍
- delphi版本号
- hibernate 异常收集1
- 简单工厂模式学习
- Pocket 2003,Windows Mobile 5,Windows Mobile 6的部分区别
- test
- java调用vc编译的dll
- 网页设计十诫
- test
- c#小票打印
- c++中const的应用
- 彻底解决IE桌面图标无法显示的问题