• 01、简单工厂模式(Factory)


    设计模式序言:这是开始学习设计模式的第一步,也是相对简单的一个设计模式,简单工厂设计模式。

    一、概念:

      简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。

     

      简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,

     

      可以理解为是不同工厂模式的一个特殊实现。

    二、图解:

                            

    三、编码

    1、 建立父类  

     1 //父类
     2     public class Option
     3     {
     4         private double number_01;
     5         public double Number_01 { get; set; }       //第一个数
     6 
     7         private double number_02;
     8         public double Number_02 { get; set; }     //第二个数
     9 
    10         public virtual double GetResult()       //这是一个抽象的方法,用来被之类重写
    11         {
    12             double result = 0;
    13             return result;
    14         }
    15     }

    2、创建工厂中的对象:(我这里是用了计算器的例子,就创建4个   + - * /)

     1     //加号类:
     2     public class AddOption:Option
     3     {
     4         public override double GetResult()
     5         {
     6             double result = 0;
     7             result = Number_01 + Number_02;
     8             return result;
     9         }
    10     }
    11 
    12     //减号类:
    13     public class SubOption:Option
    14     {
    15         public override double GetResult()
    16         {
    17             double result = 0;
    18             result = Number_01 - Number_02;
    19             return result;
    20         }
    21     }
    22 
    23     //乘号类:
    24     public class MultiplyOption:Option
    25     {
    26         public override double GetResult()
    27         {
    28             double result = 0;
    29             result = Number_01 * Number_02;
    30             return result;
    31         }
    32     }
    33 
    34     //除号类:
    35     public class DivideOption:Option
    36     {
    37         public override double GetResult()
    38         {
    39             double result = 0;
    40             if (Number_02 == 0)
    41                 throw new Exception("除数不能为0");
    42             result = Number_01 / Number_02;           
    43             return result;
    44         }
    45     }

    3、创建简单工厂的核心,简单工厂类:

     1     public class OptionFactory
     2     {
     3         public static Option CreateOption(string option)
     4         {
     5             Option oper = null;
     6             switch (option)
     7             {
     8                 case "+":
     9                     oper = new AddOption();
    10                     break;
    11                 case "-":
    12                     oper = new SubOption();
    13                     break;
    14                 case "*":
    15                     oper = new MultiplyOption();
    16                     break;
    17                 case "/":
    18                     oper = new DivideOption();
    19                     break;
    20             }
    21 
    22             return oper;
    23         }
    24     }

    4、到这里,简单工厂就已经完成了,调用即可。

     1         static void Main(string[] args)
     2         {
     3             Option oper;
     4             oper = OptionFactory.CreateOption("+");
     5             oper.Number_01 = 10;
     6             oper.Number_02 = 25;
     7             double result = oper.GetResult();
     8             Console.WriteLine(  result);
     9             Console.ReadLine();
    10         }

    附:上述代码的结构图。

                      

    5、总结:

  • 相关阅读:
    Winform_chart控件_心得
    Highcharts折线图_结合ajax实现局部刷新
    EasyUI_前台js_分页
    EasyUI_DataGrid数据操作
    EasyUI_前台js_省市县三级联动
    js gridview中checkbox的全选与全不选
    js 动态添加Table tr,选中与不选中checkbox行数NO的变化
    父子页面,有关弹框问题
    js ajax return false了,仍然会往下执行
    c#中异常捕获,回滚
  • 原文地址:https://www.cnblogs.com/zhh19981104/p/7941756.html
Copyright © 2020-2023  润新知