大话设计模式-简单工厂模式(学习笔记)

此篇为学习设计模式-简单工厂模式(教材为:大话设计模式,同时很感谢作者,本书对自己帮助很大。)过程中的一些源代码、笔记和感悟,如有理解不到位或者错误之处,敬请指教。 微笑

简单工厂模式实例:计算器



设计思想
1.建立一个运算类(operation)
其中有a、b以及对a、b的赋值属性
并创建一个可以返回结果的函数(默认值可以为0,其后可以进行重构)
public class Operation
{
    private double _numberA=0;
      private double _numberA=0;
    //通过对NumberA、B赋值达到对_numberA、B赋值的目的
     public double NumberA
     {
         set{  _numberA=value;   }
         get{ return _numberA;   }
     }
    
     public double NumberB
    {
        set{ _numberB=value; }
        get{ return _numberB; }
    }
    //返回结果值
    public virtual double GetResult()
    {
         double result=0;
         return result;
     }
}
2.创建具体的运算类(如:加减乘除)继承运算类
//加法类
class OperationAdd:Operation
{
    public override double GetResult()
    {
        double result = 0;
        result = NumberA+NumberB;
        return result
    }
}
//减法类
...
...
3. 建立简单工厂类
主要功能:根据不同的操作符实例化不同的具体运算类并返回。(主要思想:继承)
public class OperationFactory
{
    public static Operation createOperate(string operate)
    {
        Operation oper = null;
        switch(operate)
        {
            case "+":
                 oper = new OperationAdd();
                break;
            case "-":
                oper = new OperationSub();
                break;
            ....
                ....
        }
        return oper;
    }
}
4.客户端代码
主要实现声明运算类,并利用工厂类进行具体的运算类声明,设置运算数值,并通过GetResult方法返回结果
Operation oper;
oper = OperationFactory.createOperate("+");
oper.NumberA=1;
oper.NumberB=2;
double result = oper.GetResult();


小结:简单工厂类实现了客户端对具体运算类的实例化,用户不需要关心工厂类的具体操作,只需要按照相同的方法传入不同的值进行实例,并通过方法得到结果。实现了运算类,工厂类各自分工以及客户端的分离。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值