首页 > 其他分享 >工厂模式

工厂模式

时间:2024-09-09 15:04:51浏览次数:11  
标签:CreateProduct Show 模式 工厂 IFactory class IProduct

工厂模式是一种常见的设计模式,它用于创建对象的方式。在工厂模式中,我们定义一个接口或者抽象类来创建对象,而将实际的对象创建延迟到子类中。这样可以以统一的方式创建对象,同时也可以方便地扩展和修改对象的创建过程。

下面是一个简单的示例代码,演示了工厂模式的实现:

using System;

// 定义产品接口
interface IProduct
{
    void Show();
}

// 具体产品类A
class ConcreteProductA : IProduct
{
    public void Show()
    {
        Console.WriteLine("This is product A");
    }
}

// 具体产品类B
class ConcreteProductB : IProduct
{
    public void Show()
    {
        Console.WriteLine("This is product B");
    }
}

// 工厂接口
interface IFactory
{
    IProduct CreateProduct();
}

// 具体工厂类A
class ConcreteFactoryA : IFactory
{
    public IProduct CreateProduct()
    {
        return new ConcreteProductA();
    }
}

// 具体工厂类B
class ConcreteFactoryB : IFactory
{
    public IProduct CreateProduct()
    {
        return new ConcreteProductB();
    }
}

class Program
{
    static void Main()
    {
        // 使用工厂A创建产品A
        IFactory factoryA = new ConcreteFactoryA();
        IProduct productA = factoryA.CreateProduct();
        productA.Show();

        // 使用工厂B创建产品B
        IFactory factoryB = new ConcreteFactoryB();
        IProduct productB = factoryB.CreateProduct();
        productB.Show();
    }
}

在上面的代码中,我们定义了一个产品接口 IProduct 和两个具体的产品类 ConcreteProductA 和 ConcreteProductB。同时,我们定义了一个工厂接口 IFactory 和两个具体的工厂类 ConcreteFactoryA 和 ConcreteFactoryB。每个具体工厂类负责创建对应的产品类实例。

在 Main() 方法中,我们使用工厂类来创建具体的产品实例,并调用其方法展示产品的信息。

这个例子展示了如何使用工厂模式来创建对象,使得客户端代码和具体对象的创建逻辑解耦,同时方便地扩展和切换不同的创建逻辑。

标签:CreateProduct,Show,模式,工厂,IFactory,class,IProduct
From: https://www.cnblogs.com/wuqihe/p/18404577

相关文章

  • 策略模式
    策略模式是一种行为设计模式,它允许在运行时根据需要选择算法。这种模式定义了一系列算法,并使得这些算法在使用的时候可以相互替换。客户端可以根据不同的情况选择合适的策略来处理问题,而不需要修改具体使用策略的代码。以下是一个简单的策略模式示例代码:usingSystem;//策略......
  • 装饰器模式
    装饰器模式是一种结构型设计模式,它允许在不改变原有对象结构的情况下,动态地添加额外的功能或责任到对象上。这种模式通过创建包装类(装饰器类)来包裹原始类实例,并提供额外的功能。以下是一个简单的装饰器模式的示例代码:usingSystem;//抽象组件接口interfaceIComponent{......
  • 适配器模式
    适配器模式是一种结构型设计模式,用于将一个类的接口转换成另一个客户期望的接口。这种模式可以让原本由于接口不兼容而无法在一起工作的类能够协同工作。以下是一个简单的适配器模式的示例代码:usingSystem;//目标接口interfaceITarget{voidRequest();}//适配......
  • 责任链模式
    责任链模式是一种行为设计模式,它允许多个对象处理请求,而无需指定处理请求的具体处理者。请求沿着链传递,直到有一个对象处理它为止。这种模式允许将请求的发送者和接收者解耦,并使多个对象都有机会处理请求。以下是一个简单的责任链模式的示例代码:usingSystem;//抽象处理者a......
  • 案例分析:如何用设计模式优化性能14
    设计模式就是对常用开发技巧进行的总结,它使得程序员之间交流问题,有了更专业、便捷的方式。比如,我们在《02|理论分析:性能优化有章可循,谈谈常用的切入点》中提到,I/O模块使用的是装饰器模式,你就能很容易想到I/O模块的代码组织方式。事实上,大多数设计模式并不能增加程序的性......
  • 案例分析:如何用设计模式优化性能15
    设计模式就是对常用开发技巧进行的总结,它使得程序员之间交流问题,有了更专业、便捷的方式。比如,我们在《02|理论分析:性能优化有章可循,谈谈常用的切入点》中提到,I/O模块使用的是装饰器模式,你就能很容易想到I/O模块的代码组织方式。事实上,大多数设计模式并不能增加程序的性......
  • 案例分析:如何用设计模式优化性能8
    设计模式就是对常用开发技巧进行的总结,它使得程序员之间交流问题,有了更专业、便捷的方式。比如,我们在《02|理论分析:性能优化有章可循,谈谈常用的切入点》中提到,I/O模块使用的是装饰器模式,你就能很容易想到I/O模块的代码组织方式。事实上,大多数设计模式并不能增加程序的性......
  • 案例分析:如何用设计模式优化性能10
    设计模式就是对常用开发技巧进行的总结,它使得程序员之间交流问题,有了更专业、便捷的方式。比如,我们在《02|理论分析:性能优化有章可循,谈谈常用的切入点》中提到,I/O模块使用的是装饰器模式,你就能很容易想到I/O模块的代码组织方式。事实上,大多数设计模式并不能增加程序的性......
  • Prometheus的拉取模式与zabbix推送模式有何区别?各有什么优缺点?
    Prometheus的拉取模式与Zabbix的推送模式在监控数据收集和处理方式上存在显著区别。以下是它们的主要区别及各自的优缺点:1.数据收集模式Prometheus拉取模式:Prometheus定期从被监控的目标(如Exporter、应用程序等)主动拉取数据。每个目标都需要暴露一个HTTP接口,Prome......
  • Java--设计模式
    目录23种设计模式创建型模式结构型模式行为型模式设计模式的本质单例模式工厂模式定义解耦(对象使用过程+对象创建过程)分类简单工厂模式代理模式适配器模式外观模式策略模式23种设计模式创建型模式工厂模式(FactoryPattern)抽象工厂模式(AbstractFactoryPattern)单例模式(S......