简单工厂模式

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         }
复制代码

 

posted @   叫我霍啊啊啊  阅读(129)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示