zoukankan      html  css  js  c++  java
  • 简单工厂模式

    通过一个计算器的例子来学习简单工厂

    1、Operation 运算类

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

    2、加减乘除类

    class OpertionAdd:Operation  //加法类
    {
        public override double GetResult()
        {
            double result=0;
            result =NumberA+NumberB;
            return result;
        }
    }
    
    class OpertionSub:Operation  //减法类
    {
        public override double GetResult()
        {
            double result=0;
            result =NumberA-NumberB;
            return result;
        }
    }
    
    class OpertionMul:Operation  //乘法类
    {
        public override double GetResult()
        {
            double result=0;
            result =NumberA*NumberB;
            return result;
        }
    }
    
    
    class OpertionDiv:Operation  //除法类
    {
        public override double GetResult()
        {
            double result=0;
            if(NumberB==0)
            {
                throw new Exception("除数不能为0");
            }
            result =NumberA/NumberB;
            return result;
        }
    }

    3、简单运算工厂类

    public class OperationFactory
    {
        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;
            }
        }
    }

    4、客户端代码

    Operation oper;
    oper=OperationFactory.CreateOperate("+");
    oper.NumberA=1;
    oper.NumberB=2;
    double result=oper.GetResult();
  • 相关阅读:
    窗口切换快捷键
    简单排序算法
    (转)Zen Coding 让 Notepad++ 代码书写健步如飞
    (转)图解SQL的Join
    第6章 AJAX
    今天是五四青年节
    看到的php的小知识
    (转)Notepad++配合QuickText打造快速高效的文本编辑器
    一种非常好的产生"唯一"临时文件的办法
    (转)linux 目录结构及其含义
  • 原文地址:https://www.cnblogs.com/shanoon/p/5452033.html
Copyright © 2011-2022 走看看