C# 实现简单的工厂模式

简介: 工厂模式通过工厂类封装对象创建逻辑,客户端无需关心具体实现,只需调用工厂方法即可获取所需对象,降低耦合度,提升扩展性与维护性。

通过工厂类封装对象的创建逻辑,客户端无需直接实例化具体类。

// 产品接口
public interface IProduct
{
    void ShowInfo();
}
// 具体产品A
public class ProductA : IProduct
{
    public void ShowInfo() => Console.WriteLine("这是产品A");
}
// 具体产品B
public class ProductB : IProduct
{
    public void ShowInfo() => Console.WriteLine("这是产品B");
}
// 工厂类
public class ProductFactory
{
    public static IProduct CreateProduct(string type)
    {
        return type switch
        {
            "A" => new ProductA(),
            "B" => new ProductB(),
            _ => throw new ArgumentException("无效的产品类型")
        };
    }
}
// 调用示例
public static void TestFactory()
{
    IProduct product = ProductFactory.CreateProduct("A");
    product.ShowInfo();
}
相关文章
|
安全 编译器 C#
C#学习相关系列之多线程---lock线程锁的用法
C#学习相关系列之多线程---lock线程锁的用法
488 1
|
安全 Java 编译器
多线程(看这一篇就够了,超详细,满满的干货)
多线程(看这一篇就够了,超详细,满满的干货)
1214 2
|
JSON JavaScript 前端开发
JavaScript 中更现代的深拷贝方法!
JavaScript 中更现代的深拷贝方法!
571 0
|
Ubuntu Shell 开发工具
Ubuntu 20.04 安装nvm
Ubuntu 20.04 安装nvm
8626 0
|
7月前
|
存储 前端开发 JavaScript
Go语言实战案例-项目实战篇:编写一个轻量级在线聊天室
本文介绍如何用Go语言从零实现一个轻量级在线聊天室,基于WebSocket实现实时通信,支持多人消息广播。涵盖前后端开发、技术选型与功能扩展,助你掌握Go高并发与实时通信核心技术。
851 158
|
3月前
|
C#
C# 实现发送邮件功能(SMTP)
通过SMTP协议实现邮件发送,支持文本与附件,需配置邮箱SMTP信息(如QQ邮箱授权码)。示例代码展示C#中如何使用SmtpClient发送邮件,适用于QQ、163、Gmail等主流邮箱服务。
|
3月前
|
JSON API C#
C# 实现简单的 HTTP 请求工具(GET/POST)
HTTP请求工具用于调用第三方API,支持GET和POST方法,实现数据获取与提交。示例代码展示通过HttpClient发送异步POST请求,处理响应并解析JSON结果,适用于高效集成外部服务。
|
3月前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
3月前
|
C#
C# 实现简单的定时任务工具
基于 `System.Timers.Timer` 实现定时任务,支持周期性与单次执行。通过封装 Timer 类,提供启动、停止功能,并包含异常处理,确保任务稳定运行,适用于后台定时操作场景。
|
3月前
|
网络协议 安全 C#
C# 实现基于 TCP 的简单聊天程序(服务端)
基于TcpListener实现TCP聊天服务器,监听指定端口,接收客户端连接并实时转发消息。支持多客户端并发通信,新连接自动加入广播列表,断开后自动移除,确保线程安全与稳定运行。