首页 > 其他 > 详细

设计模式之简单工厂模式

时间:2014-03-10 23:04:06      阅读:557      评论:0      收藏:0      [点我收藏+]

看完书,用一句话来说简单工厂模式就是通过对类封装,继承,多态使用,来实现业务和界面分离。实现程序的可维护性(修改),可拓展性(添加),可重用性(保留),灵活性(移动).   只是解决对象创建问题

下面是实现计算机简单加减乘除运算来实现的简单工厂模式。

//运算类   实现业务逻辑和界面逻辑的分离  从而容易维护和拓展
    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;

        }
    }

    //乘法运算类
    class OperationMul : Operation
    {
        public override double getResult()
        {
            double result = 0;
            result = NumberA * NumberB;
            return result;
        }
    }

    //除法运算类
    class OperationDiv : Operation
    {
        public override double getResult()
        {
            double result = 0;
            if (NumberB == 0) {
                throw new Exception("除数不能为零");
            }
            result = NumberA / NumberB;
            return result;

        }
    }

工厂

  //工厂主要是创建不能类对象
    class OperationFaction
    {
        public static Operation createOperate(string operate) {
            Operation oper = null;
            switch (operate)
            {//将子类对象赋给父类,父类可以直接调用子类相应方法  通过重载父类方法实现
                case "+": oper = new OperationAdd(); 
                    break;
                case "-": oper = new OperationSub();
                    break;
                case "*": oper = new OperationMul();
                    break;
                case "/": oper = new OperationDiv();
                    break;
            }
            return oper;
        }
    }

主函数:

        static void Main(string[] args)
        { //只是实现调用
            Operation oper;
            oper = OperationFaction.createOperate("+");
            oper.NumberA = 1;
            oper.NumberB = 2;
            double result = oper.getResult();
            Console.WriteLine(result);
            Console.ReadLine();
        }


设计模式之简单工厂模式,布布扣,bubuko.com

设计模式之简单工厂模式

原文:http://blog.csdn.net/buyingfei8888/article/details/20949291

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!