简单工厂模式
客户端代码:
1: static void Main(string[] args)
2: {
3: Operator p = OperatorFactory.CreateOperate("+");
4: Console.WriteLine(p.GetResult());
5: Console.ReadLine();
6: }
服务端代码:
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5:
6: namespace CalculatorProgram
7: {
8: class Operator
9: {
10:
11: public double numA
12: {
13: get;
14: set;
15: }
16:
17: public double numB
18: {
19: get;
20: set;
21: }
22:
23: public virtual double GetResult()
24: {
25: return 0;
26: }
27: }
28:
29: class AddOperator : Operator
30: {
31: public override double GetResult()
32: {
33: return numA + numB;
34: }
35: }
36:
37: class SubOperator : Operator
38: {
39: public override double GetResult()
40: {
41: return numA - numB;
42: }
43: }
44:
45: class OperatorFactory
46: {
47: public static Operator CreateOperate(string oper)
48: {
49: switch (oper)
50: {
51: case "+":
52: return new AddOperator();
53: case "-":
54: return new SubOperator();
55: default:
56: return null;
57: }
58: }
59: }
作者:today4king
出处:https://www.cnblogs.com/jinzhao/archive/2008/09/17/1292690.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
模式设计
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架