工厂模式(Factory Pattern)

工厂模式



介绍

工厂模式是一种常见的设计模式,用于创建对象而不暴露对象的创建逻辑。在软件开发中,工厂模式通常用于管理对象的创建过程,特别是当对象的创建过程比较复杂,需要封装起来以便于代码的维护和扩展。

工厂模式通常包括三个角色:工厂接口、具体工厂和产品

工厂接口(Factory Interface):定义了一个用于创建对象的接口,其中可能包含一个或多个工厂方法,每个方法用于创建不同类型的产品对象。
具体工厂(Concrete Factory):实现了工厂接口,负责创建具体的产品对象。每个具体工厂通常与特定类型的产品相关联。
产品(Product):表示由工厂创建的对象。产品可以是具体的类、接口或抽象类。


一、工厂模式的几种变体

简单工厂模式(Simple Factory Pattern):由一个工厂类根据传入的参数,决定创建哪一种产品类的实例。客户端只需要知道工厂类即可,不需要关心具体产品的创建过程。
工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,但是让子类决定实例化哪个类。这样,可以将实例化的过程推迟到子类中,从而实现解耦。
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。它是工厂方法模式的升级版,不仅创建单一对象,而且可以创建一系列相关的对象。

二、工厂模式类图

1.简单工厂模式(Simple Factory Pattern)

简单工厂模式是最简单的工厂模式之一,它由一个工厂类根据传入的参数来创建对象。

// 产品接口
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

相关推荐

  1. 工厂模式

    2024-04-26 11:26:01       53 阅读
  2. 【设计模式工厂模式

    2024-04-26 11:26:01       69 阅读
  3. 设计模式--工厂模式

    2024-04-26 11:26:01       53 阅读
  4. 设计模式 工厂模式

    2024-04-26 11:26:01       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 11:26:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 11:26:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 11:26:01       82 阅读
  4. Python语言-面向对象

    2024-04-26 11:26:01       91 阅读

热门阅读

  1. 矿山自动驾驶技术点分析

    2024-04-26 11:26:01       23 阅读
  2. 【MySQL】创建和管理数据库

    2024-04-26 11:26:01       31 阅读
  3. SpringBoot之JdbcTemplate输出完整SQL日志

    2024-04-26 11:26:01       35 阅读
  4. 牛客Linux高并发服务器开发学习第五天

    2024-04-26 11:26:01       37 阅读
  5. C#:Winform界面中英文切换功能

    2024-04-26 11:26:01       35 阅读
  6. NPM详解

    2024-04-26 11:26:01       35 阅读
  7. Dockers数据卷Volume

    2024-04-26 11:26:01       33 阅读
  8. LeetCode 每日一题 ---- 【1146.快照数组】

    2024-04-26 11:26:01       36 阅读
  9. Apache Spark 的基本概念和在大数据分析中的应用

    2024-04-26 11:26:01       30 阅读
  10. 点云配准类相关文献阅读记录

    2024-04-26 11:26:01       32 阅读