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();
}
相关文章
|
2天前
|
安全 C#
C# 泛型:实现类型安全的通用代码
泛型通过类型参数(如T)实现类型通用性,可定义不指定具体类型的类或方法,使用时再确定类型。示例中,Swap<T>方法可交换任意同类型变量,List<T>集合避免装箱拆箱,提升性能与安全。
|
2天前
|
C#
C# 字符串操作:常用方法汇总(含案例)
C# 提供丰富的字符串操作方法,如拼接、截取、替换和判断等。本文通过工具类案例演示如何高效处理字符串,提升开发效率与代码可读性。
|
2天前
|
JSON API C#
C# 实现简单的 HTTP 请求工具(GET/POST)
HTTP请求工具用于调用第三方API,支持GET和POST方法,实现数据获取与提交。示例代码展示通过HttpClient发送异步POST请求,处理响应并解析JSON结果,适用于高效集成外部服务。
|
2天前
|
C#
C# 实现图片压缩工具(基础版)
基于 System.Drawing 实现图片尺寸缩放与质量压缩,支持常见格式。通过计算缩放比例生成新图像,并调整压缩质量以减小文件大小。适用于 .NET 平台,需安装 System.Drawing.Common NuGet 包。
|
2天前
|
C#
C# 异常处理:try-catch-finally 避免程序崩溃
异常处理用于捕获运行时错误(如空引用、文件不存在),确保程序稳定。通过 `try` 包裹可能出错的代码,`catch` 捕获并处理异常,`finally` 确保资源释放等操作始终执行,提升代码健壮性。
|
2天前
|
网络协议 C#
C# 实现 IP 地址有效性验证
通过正则表达式与IPAddress类双重验证IP地址,支持IPv4和IPv6格式校验,确保地址有效性。代码示例展示了高效、可靠的验证方法。
|
2天前
|
安全 C#
C# 实现简单的日志工具类
这是一个C#文件日志类,支持按日期生成日志文件,提供Info、Warn、Error三种级别记录功能,线程安全且使用简单,适用于各类应用程序的日志记录需求。
|
2天前
|
C#
C# 实现简单的二维码生成工具
基于 ZXing.Net 库生成二维码,支持自定义尺寸与保存路径,使用简便,需先安装对应 NuGet 包。
|
2天前
|
C# 数据安全/隐私保护
C# 正则表达式:快速匹配与验证
正则表达式用于字符串模式匹配,如手机号、邮箱、密码验证等。C# 通过 `System.Text.RegularExpressions` 命名空间中的 `Regex` 类实现。本文示例展示了使用 `RegexHelper` 工具类进行常见验证:`IsPhoneNumber` 验证中国大陆手机号(1开头,共11位);`IsEmail` 校验邮箱格式;`IsValidPassword` 判断密码是否包含字母和数字且长度为8-20位;`ExtractNumbers` 提取字符串中所有数字。代码简洁高效,适用于数据校验与文本处理场景。
|
2天前
|
Java C#
C# 实现简单的线程池工具
使用 `ThreadPool` 管理多线程任务,有效控制并发数量,避免因线程过多导致系统性能下降。通过示例代码演示如何提交任务、跟踪完成状态,并等待所有任务结束,提升资源利用率和程序稳定性。

热门文章

最新文章