大话设计模式之简单工厂模式

简单工厂模式

  最近朋友推荐了一本书《大话设计模式》,此书刚刚到,博主也还没开始看,希望以博文的方式与大家一起分享,一起学习.

简单工厂模式,也就是说,到底要实列化谁,将来会不会增加实列化的对象,比如增加开根运算,这是很容易实列化的地方应该考虑用一个单独的类来做这个创造实列的过程,这就是工厂,来我们一起看看这个类如何写。

简单运算工厂类:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import public
 
public class OperationFactory
{
    public static OperationFactory(string operate)
    {
        Operation oper = null;
        switch (operate)
        {
            case "+";
                oper = new OperationFactory();
                break;
            case "-";
                oper = new OperationFactory();
                break;
            case "*";
                oper = new OperationFactory();
                break;
            case "/";
                oper = new OperationFactory();
                break;
        }
        return oper;
    }
}

 

  看到了吧,这样子只需要输入运算符号,工厂就实列出合适的对象,通过多态,返回父类的方式实现了计算器的结果。

客户端代码:

1
2
3
4
5
6
7
8
#客户端代码
 
 
Operation oper;
oper = OperationFactory.createOperate("+");
oper.NumberA = 1;
oper.NumberB = 2;
double result = oper.GetResult();

  界面实现就是这样的代码、不管你是控制台程序,Windows 程序, Web 程序, PDA或手机程序,都可以用这段代码来实现计算器的功能,如果有一天我们需要更改加法运算,我们只需要改 (OperationADD)就可以了,那么我们需要增加各种复杂运算,比如平方根,立方根,自然对数,正弦余弦等,那么如何做呢?(只要增加相应的运算子类就可以了),增加之后,还得需要去修改一下运算类工厂,在switch中增加分支。

  写到这,不知不觉到结尾了,这就是简单的工厂模式,以下是几个类的结构图.

 

 

 

模式还有很多......待更新

 

posted @   WrYcF  阅读(605)  评论(3编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
Live2D
欢迎阅读『大话设计模式之简单工厂模式』
点击右上角即可分享
微信分享提示