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

    1. 简介

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

    2. 代码示例

     1 //运算类
     2 public class Operation
     3     {
     4         private double numberA = 0;
     5         private double numberB = 0;
     6 
     7         public double NumberA
     8         {
     9             get { return numberA; }
    10             set { numberA = value; }
    11         }        
    12 
    13         public double NumberB
    14         {
    15             get { return numberB; }
    16             set { numberB = value; }
    17         }
    18 
    19         public virtual double GetResult()
    20         {
    21             double result = 0;
    22             return result;
    23         }
    24 }
    25 //加减乘除类
    26 class OperationAdd:Operation
    27     {
    28         public override double GetResult()
    29         {
    30             double result = 0;
    31             result = NumberA + NumberB;
    32             return result;
    33         }
    34 }
    35 class OperationSub:Operation
    36     {
    37         public override double GetResult()
    38         {
    39             double result = 0;
    40             result = NumberA - NumberB;
    41             return result;
    42         }
    43 }
    44 class OperationMul:Operation
    45     {
    46         public override double GetResult()
    47         {
    48             double result = 0;
    49             result = NumberA * NumberB;
    50             return result;
    51         }
    52 }
    53 class OperationDiv:Operation
    54     {
    55         public override double GetResult()
    56         {
    57             double result = 0;
    58             if (NumberB == 0)
    59                 throw new Exception("除数不能为零");
    60             result = NumberA / NumberB;
    61             return result;
    62         }
    63 }
    64 //简单运算工厂类
    65 public class OperationFactory
    66     {
    67         public static Operation createOprate(string operate)
    68         {
    69             Operation oper = null;
    70             switch (operate)
    71             {
    72                 case "+":
    73                     oper = new OperationAdd();
    74                     break;
    75                 case "-":
    76                     oper = new OperationSub();
    77                     break;
    78                 case "*":
    79                     oper = new OperationMul();
    80                     break;
    81                 case "/":
    82                     oper = new OperationDiv();
    83                     break;
    84             }
    85             return oper;
    86         }
    87     }
    88 //Main
    89 static void Main(string[] args)
    90         {
    91             Operation oper;
    92             oper = OperationFactory.createOprate("+");
    93             oper.NumberA = 1;
    94             oper.NumberB = 2;
    95             double result = oper.GetResult();
    96 
    97             Console.ReadKey();
    98         }
  • 相关阅读:
    Asp.NET 4.0 ajax实例DataView 模板编程1
    ASP.NET 4.0 Ajax 实例DataView模板编程 DEMO 下载
    部分东北话、北京话
    .NET 培训课程解析(一)
    ASP.NET 4.0 Ajax 实例DataView模板编程2
    ASP.NET Web Game 架构设计1服务器基本结构
    ASP.NET Web Game 构架设计2数据库设计
    TFS2008 基本安装
    Linux上Oracle 11g安装步骤图解
    plsql developer远程连接oracle数据库
  • 原文地址:https://www.cnblogs.com/HuoAA/p/4039277.html
Copyright © 2011-2022 走看看