工厂模式

简单工厂模式的组成:

抽象类:即父类。

具体类:有具体操作的类。继承了抽象类。

工厂类:通过工厂,客户端可以直接使用具体类。

工厂就是用来加工产品的地方,我客户端只要输入一个东西,工厂就去调用相应的方法,就可以得到输出的结果。看一下具体的工作流程。

父类:(运算类)

 public class Operation//运算类
    {
        private double numberA = 0;
        private double numberB = 0;

        public double NumberA
        {
            get { return numberA; }
            set { numberA = value; }
        }
        public double NumberB
        {
            get { return numberB; }
            set { numberB = value; }
        }
        public virtual double GetResult()
        {
            double result = 0;
            return result;
        }
    }

具体类:

 class OperationAdd :Operation//加法类进行继承
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA + NumberB;
            return result;
        }
    }
    class OperationSub :Operation//减法继承类
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA - NumberB;
            return result;
        }
      
    }

工厂类:

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;
        }
    }

客户端:

static void Main(string[] args)
        {
            Operation oper;
            oper = OperationFactory.createOperate("+");
            oper.NumberA = 1;
            oper.NumberB = 2;
            double result = oper.GetResult();
            Console.WriteLine(result);
            Console.ReadKey();

        } 

通过F11调试,我们可以看一下它的工作流程:

1、将“+”给工厂类的参数 operate

2、得知调用的是加法类OperateAdd

3、将其给oper,并且返回oper

4、然后使用 OperateAdd的方法GetResult()

5、返回结果result。

对工厂模式还没有太深的了解,欢迎大家纠正,共同进步。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值