简单工厂初步了解

    // 运算基础类
    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 resulet = 0;
            return resulet;
        }
    }
 
    // 加法
    class OperationAdd:Operation
    {
        public override double GetResult()
        {
            double reasult = 0;
            reasult = NumberA + NumberB;
            return reasult;
        }
    }
   // 减法
    class OperationSub:Operation
    {
        public override double GetResult()
        {
            double reasult = 0;
            reasult = NumberA - NumberB;
 	        return reasult;
        }
    }

    // 简单工厂模式,管理算法类
    public class OperationFactory
    {
        public static Operation CreateOperate(string operate)
        {
            Operation opr = null;
            switch(operate)
            {
                case "+":
                    opr = new OperationAdd();
                    break;
                case "-":
                    opr = new OperationSub();
                    break;
            }
            return opr;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Operation oper;
            oper = OperationFactory.CreateOperate("+");
            oper.NumberA = 2;
            oper.NumberB = 3;
            double reasult = oper.GetResult();

            Console.WriteLine(reasult);
            Console.ReadKey();
        }
    }

学习一点点的程杰<大话设计模式>,让自己对写代码有新的认识,决定要花功夫好好钻研钻研。没看简单工厂模式之前,可能只是简单粗暴的把功能实现了,但是代码的维护性来说,确实增加了很多麻烦。而增加了一个工厂管理类 OperationFactory,后面添加新的运算方法,也就是增加一个新的类和在工厂管理类中增加相应的运算符号,而不必修改其他的代码。

参考:程杰<大话设计模式>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值