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

简单工厂模式

时间:2024-12-07 15:31:48浏览次数:3  
标签:Product 模式 display 简单 工厂 public

  1. 简单工厂模式(又称静态工厂模式):定义一个创建对象的类,由这个类来封装实例化对象的行为。

  2. 简单工厂模式应用场景:当我们需要根据传入的参数来动态创建对象时,可以使用简单工厂模式。

  3. 简单工厂模式的角色:

    • 工厂类(Creator):负责创建产品的类。在简单工厂模式中,工厂类提供了一个静态方法,根据传入的参数来创建不同的产品对象。

    • 产品类(Product):由工厂类创建的对象。

  4. 示例代码:

    // 产品接口
    interface Product {
        void display();
    }
    
    // 具体产品 A
    class ConcreteProductA implements Product {
        @Override
        public void display() {
            System.out.println("This is product A.");
        }
    }
    
    // 具体产品 B
    class ConcreteProductB implements Product {
        @Override
        public void display() {
            System.out.println("This is product B.");
        }
    }
    
    // 简单工厂类
    class SimpleFactory {
        // 根据类型创建具体产品对象
        public static Product createProduct(String type) {
            switch (type) {
                case "A":
                    return new ConcreteProductA();
                case "B":
                    return new ConcreteProductB();
                default:
                    throw new IllegalArgumentException("Unsupported product type.");
            }
        }
    }
    
    // 客户端代码
    public class Main {
        public static void main(String[] args) {
            // 使用简单工厂创建产品
            Product productA = SimpleFactory.createProduct("A");
            Product productB = SimpleFactory.createProduct("B");
    
            // 调用产品方法
            productA.display(); // Output: This is product A.
            productB.display(); // Output: This is product B.
        }
    }
    

    在上面的代码中,我们定义了一个SimpleFactory工厂类,它提供了一个静态方法createProduct(),根据传入的参数来创建不同的产品对象。我们还定义了两个产品类ConcreteProductAConcreteProductB,它们都实现了display()方法。最后,我们使用工厂类创建了两个产品对象productAproductB,并调用了它们的display()方法。

另:

简单工厂模式不属于 23 中设计模式,它是工厂模式的一种变种。

简单工厂模式违反了开闭原则,如果需要增加对象实例的返回,就必须修改工厂类的代码逻辑。

开闭原则:对修改关闭,对扩展开放。要增加一个新的逻辑,可以新加一个类,但不要在原有类的基础上修改。

主要内容来自:ChatGPT

参考:BeanFactory 和简单工厂模式

标签:Product,模式,display,简单,工厂,public
From: https://www.cnblogs.com/Higurashi-kagome/p/17478811.html

相关文章

  • 实现简单链表
    #include<stdio.h>structstu {   intage;   charname[20];   structstu*next;};intmain(){   structstus1={20,"zhangsan",NULL};   structstus2={21,"lisi",NULL};   structstus3={28,"wang",......
  • TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面
    前言前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用。但在日常使用过程中,命令行使用还是不太方便的,因此今天介绍一下如何使用WPF/C#构建TesseractOCR简单易用的用户界面。普通用户使用参照上一篇教程,在本地安装好TesseractOCR之......
  • 第68篇 jwt的简单介绍
    1.API保护1.1为什么要保护API防泄漏防攻击1.防伪装攻击(案例:在公共网络环境中,第三方有意或恶意的调用我们的接口)2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容在传输过程被修改)3.防重放攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放)收益化1.2......
  • 【花雕学编程】行空板K10系列实验之有屏幕提示的简单定时照相机
    行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭......
  • Kotlin设计模式之单例模式
    一.使用object关键字Kotlin提供了object关键字来直接创建单例对象,这是最简单和推荐的方式。//SingletonObject.ktobjectSingletonObject{fundoSomething(){println("Doingsomething...")}}二.使用companion objectcompanion object可以用于......
  • 掌握设计模式之工厂方法模式
    工厂方法模式工厂方法模式(FactoryMethodPattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的具体类。工厂方法模式将对象的创建委托给子类,从而实现了类的实例化延迟和高内聚低耦合的目标。工厂方法模式的结构工厂方法模式通常包含以下几个角色......
  • 云开发 Copilot ——让开发变得更简单
    声明:本篇博客为云开发Copilot体验文章,非广告目录前言:游客体验云开发Copilot实战:一、图片生成需求二、云开发Copilot实现需求三、AI生成低代码页面Copilot的亮点功能使用场景云开发Copilot开发的前景展望前言:在云开发AI+中,腾讯云提供一系列与AI相关的功能,如......
  • 17 设计模式之组合模式(公司员工结构案例)
    一、组合模式的定义        组合模式(CompositePattern)是一种结构型设计模式,它让我们可以将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式允许客户端以统一的方式对待单个对象和对象集合。它适用于表示具有层次关系的对象结构。        组合模......
  • 装饰器模式
    现实世界中的例子        想象一下,你经营一家汽车服务店,提供多种服务。那么,你如何计算要收取的账单呢?你选择一项服务,然后动态地根据提供的服务不断累加价格,直到得到最终费用。在这里,每种类型的服务都是一个装饰器。简单解释        装饰器模式允许你在运行......
  • 设计模式学习思路二
            设计模式的学习思路_设计模式必须按顺序进行吗-CSDN博客以下是一些方法和思路可以帮助你更清晰地识别使用了哪种设计模式。1.确定模式时的思考步骤        以下是分析代码时,你可以遵循的一些思路和步骤,帮助你识别可能使用的设计模式:a.识别类和对......