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

设计模式笔记——简单工厂模式

时间:2015-07-22 14:51:39      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:工厂模式

简单工厂模式的学习

       简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

       所有设计模式总结请参考:http://blog.csdn.net/chr23899/article/details/46999267

       所有设计原则总结请参考:http://blog.csdn.net/chr23899/article/details/46999401

         首先来看下具体的效果图

技术分享

         主要包括两个数 Number_X 和Number_Y 下面是四个操作 Add(+)、 Sub(-) 、 Mul(*)、 Div(/); 当用户点击其中一个操作时工厂会实例化具体的操作类型。

           改应用的类图如下: 

技术分享

具体实现如下代码:

 //操作类
    public class Operation
    {
        //定义两个操作数 number_x 与 number_y
        private double number_x = 0;
        private double number_y = 0;

        //对 number_x 进行封装
        public double Number_x
        {
            get { return number_x; }
            set { number_x = value; }
        }

        //对 number_y 进行封装
        public double Number_y
        {
            get { return number_y; }
            set { number_y = value; }
        }

        //定义虚函数
        public virtual double Result()
        {
            double number = 0;
            return number;
        }
    }

    //加法运算
    public class Operation_Add : Operation
    {
        public override double Result()
        {
            double number = 0;
            number = Number_x + Number_y;
            return number;
        }
    }

    //减法运算
    public class Operation_Sub : Operation
    {
        public override double Result()
        {
            double number = 0;
            number = Number_x - Number_y;
            return number;
        }
    }

    //乘法运算
    public class Operation_Mul : Operation
    {
        public override double Result()
        {
            double number = 0;
            number = Number_x * Number_y;
            return number;
        }
    }

    //除法运算
    public class Operation_Div : Operation
    {
        public override double Result()
        {
            double number = 0;
            if (Number_y == 0)
                return 0;
            number = Number_x / Number_y;
            return number;
        }
    }

    //定义一个工厂类获取具体的操作类
    public class FactoryOfOperation
    {
        public static Operation GetTheOperation(string str)
        {
            Operation oper = null;
            switch (str)
            {
                case "add":
                    oper = new Operation_Add();
                    break;
                case "sub":
                    oper = new Operation_Sub();
                    break;
                case "mul":
                    oper = new Operation_Mul();
                    break;
                case "div":
                    oper = new Operation_Div();
                    break;
                default:
                    break;
            }
            return oper;
        }
    }

源程序下载地址: http://download.csdn.net/detail/chr23899/8922383

版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式笔记——简单工厂模式

标签:工厂模式

原文地址:http://blog.csdn.net/chr23899/article/details/47000609

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