~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

@#

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

##

    class Program   //前台代码
    {
        static void Main(string[] args) 
        {
            Operation oper = OperationFactory.CreateOperate("+");
            oper.NumberA = 20;
            oper.NumberB = 80;
            double result = oper.GetResult();
            Console.WriteLine(result);
        }
    }

 

posted on 2017-05-26 13:58  LuoTian  阅读(235)  评论(0编辑  收藏  举报