首页 > 其他分享 >设计模式-Simple Factory(简单工厂)

设计模式-Simple Factory(简单工厂)

时间:2023-02-01 09:12:27浏览次数:50  
标签:Simple Factory 工厂 ConcreteProduct2 public ConcreteProduct1 设计模式 class

模式说明

简单工厂模式又叫静态工厂模式,但不属于23种设计模式。简单工厂模式是由一个工厂对象决定创建出哪一个产品类的实例。

UML结构图

image

优点

实现了对责任的分割,隔离了变化,使用了专门的工厂类来创建产品对象。
通过配置文件,可以在不修改人和客户端代码的情况下更换具体的产品类,在一定程度上提高系统的灵活性。

缺点

集中了所有实例的创建逻辑,违反了单一职责原则。
扩展困难,每次添加产品都需要修改工厂类的代码,违反开闭原则,所以适合于产品变动较少的情况。

代码实现

namespace Test
{
    public abstract class Product
    {

    }


    public class ConcreteProduct1:Product
    {

    }

    public class ConcreteProduct2:Product
    {

    }

    public class Factory
    {
        public Product CreateProduct(string arg)
        {
            switch(arg)
            {
                case "ConcreteProduct1":
                    return new ConcreteProduct1();
                    break;
                case "ConcreteProduct2":
                    return new ConcreteProduct2();
                    break;
                default:
                    throw new Exception("Type Not Support");
            }
        }
    }

    public static class Program
    {
        public static void Main(string[] args)
        {
            Factory factory = new Factory();
            var product1 = factory.CreateProduct("ConcreteProduct1");
            Console.WriteLine(product1);
            var product2 = factory.CreateProduct("ConcreteProduct2");
            Console.WriteLine(product2);

            Console.WriteLine("Success");
        }
    }
}

标签:Simple,Factory,工厂,ConcreteProduct2,public,ConcreteProduct1,设计模式,class
From: https://www.cnblogs.com/cqpanda/p/16802962.html

相关文章

  • 设计模式 > 单一职责原则
    SOLID原则并非单纯的1个原则,而是由5个设计原则组成的,它们分别是单一职责原则,开闭原则,里氏替换原则,接口隔离原则和依赖反转原则。单一职责原则(SRP)定义:一个类或者模块只负......
  • 工厂模式(factory)
    1,简单工厂模式1.1,简介简单工厂:封装创建产品的过程。提供一个返回产品实例的方法,此方法封装了产品实例的逻辑,根据参数返回不同的实例。所有产品一个工厂实例生成。缺点:每......
  • Autofac中的AsImplementedInterfaces()
    在项目开发中,遇到一个问题,是这样的,我们有一个接口IConfigurationpublicinterfaceIConfiguration{stringDefaultValue{get;}intOrde......
  • 24种设计模式--工厂模式(Factory)创建型
    目录1.简单工厂模式simpleFactory概述接口类实现类简单工场类测试类测试结果:参考链接1.简单工厂模式simpleFactory概述工厂模式中,我们在创建对象时不会对客户端暴露创......
  • 一篇文章带你了解设计模式——创建者模式
    一篇文章带你了解设计模式——创建者模式在之前的文章中我们已经学习了设计模式的基本原则和基本分类下面我们来介绍第一种设计模式,创建型模式的主要关注点是怎样创建对......
  • Simple-Web-Server HTTP开源服务器库
    1下载网址​ ​​https://gitlab.com/eidheim/Simple-Web-Server​​2实现HTTP短连接默认的HTTP协议都是短连接,服务器返回响应报文,就会主动断开,测试发现,当前库不会主动断......
  • Django django-rest-framework-simplejwt
    Django(75)django-rest-framework-simplejwt「建议收藏」发布于2022-09-1611:56:13阅读 2440 大家好,又见面了,我是你们的朋友全栈君。 前言由于之前我们一......
  • 23种常见设计模式
    记忆口诀:23种常用设计模式,创建型模式5种,结构性模式7种,行为模式11种。创建型模式:工厂方法、抽象工厂、生成器、原型、单例结构型模式:适配器、桥接、组合、装饰、外观、享......
  • 领域驱动设计模式、原理与实践
    [email protected]《领域驱动设计模式、原理与实践》204MB751页2016年2月第1版  ......
  • 24种设计模式--策略模式(strategy)、模板模式(template)
    @目录第一部分:策略模式1.定义接口:Game2.实现Game接口:2.1DNF2.2LOL3.引用的上下文:4.测试类4.1测试结果:第二部分:模板模式复用策略模式的代码1.定义钩子(抽象类):2.具体实现类......