LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

简单工厂模式在C#中的实现

admin
2024年7月18日 9:58 本文热度 753

简单工厂模式(Simple Factory Pattern)属于创建型模式,它定义了一个创建对象的类,由这个类来封装实例化对象的行为。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类。

一、简单工厂模式的结构

简单工厂模式主要包含以下角色:

  1. 工厂类(Creator):这是简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。

  2. 抽象产品类(Product):简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

  3. 具体产品类(Concrete Product):简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

二、简单工厂模式的实现

下面通过C#代码示例来演示简单工厂模式的实现:

  1. 定义抽象产品类
public interface IProduct
{
    void Show();
}
  1. 定义具体产品类
public class ConcreteProductA : IProduct
{
    public void Show()
    {
        Console.WriteLine("This is Product A");
    }
}

public class ConcreteProductB : IProduct
{
    public void Show()
    {
        Console.WriteLine("This is Product B");
    }
}
  1. 定义工厂类
public class SimpleFactory
{
    public static IProduct CreateProduct(string type)
    {
        switch (type)
        {
            case "A":
                return new ConcreteProductA();
            case "B":
                return new ConcreteProductB();
            default:
                throw new ArgumentException("Unknown product type");
        }
    }
}
  1. 客户端代码
class Program
{
    static void Main(string[] args)
    {
        IProduct productA = SimpleFactory.CreateProduct("A");
        productA.Show();

        IProduct productB = SimpleFactory.CreateProduct("B");
        productB.Show();
    }
}

三、简单工厂模式的优缺点

优点

  1. 工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品。简单工厂模式通过这种做法实现了对责任的分割。
  2. 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可。
  3. 通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。

缺点

  1. 由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
  2. 使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。
  3. 系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。

简单工厂模式作为一种简单且实用的创建型模式,在软件开发中得到了广泛的应用,特别是当系统中只需要一个工厂类或者系统中只需要创建少量对象时,使用简单工厂模式可以大大简化系统的实现,提高系统的可维护性和灵活性。


该文章在 2024/7/18 16:37:38 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved