码迷,mamicode.com
首页 > 其他好文 > 详细

01—简单工厂

时间:2016-02-25 21:21:01      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

描述:封装一基类,都继承基类,当需要实例化不同对象时,可以通过一个工厂类实现。
实例:通过一个计算器小程序来实现。
 
代码实现如下:
运算基类
    /// <summary>
    /// 运算类
    /// </summary>
    public class Operaction
    {
        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;
        }
    }

运算子类,我统一放在OperactionAll.cs中了

    /// <summary>
    ////// </summary>
    class OperactionAdd : Operaction
    {
        /// <summary>
        /// 运算方法
        /// </summary>
        /// <returns></returns>
        public override double GetResult()
        {
            double result = 0;
            result = NumberA + NumberB;
            return result;
        }
    }
    /// <summary>
    ////// </summary>
    class OperactionSub : Operaction
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA - NumberB;
            return result;
        }
    }
    /// <summary>
    ////// </summary>
    class OperactionMul : Operaction
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA * NumberB;
            return result;
        }
    }
    /// <summary>
    ////// </summary>
    class OperactionDiv : Operaction
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA / NumberB;
            return result;
        }
    }

工厂类

    /// <summary>
    /// 工厂类
    /// </summary>
    public class OperactionFactory
    {
        //创建实例的方法
        public static Operaction CreateOperaction(string Operacte)
        {
            Operaction oper = null;
            switch (Operacte)
            {
                case "+":
                    oper = new OperactionAdd();
                    break;
                case "-":
                    oper = new OperactionSub();
                    break;
                case "*":
                    oper = new OperactionMul();
                    break;
                case "/":
                    oper = new OperactionDiv();
                    break;

            }
            return oper;
        }
    }

客户端调用

    /// <summary>
    /// 客户端调用
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Operaction oper = null;
            oper = OperactionFactory.CreateOperaction("-"); //通过工厂创建实体
            oper.NumberA = 10;
            oper.NumberB = 5;
            double result = oper.GetResult();//运算方法
            Console.WriteLine(result);
            Console.ReadLine();
        }
    }

完了。代码:点击下载

01—简单工厂

标签:

原文地址:http://www.cnblogs.com/itmu89/p/5218294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!