Java设计模式 (二) 工厂模式

这篇具有很好参考价值的文章主要介绍了Java设计模式 (二) 工厂模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是工厂模式?

工厂模式是一种创建型设计模式,它提供了一种统一的方式来创建对象,隐藏了对象的创建细节,使客户端代码与具体类的实例化过程解耦。工厂模式可以帮助您在不暴露对象创建细节的情况下实例化对象,从而提高代码的灵活性和可维护性。

工厂模式通常涉及以下几个角色:

  • 产品(Product): 这是一个抽象类或接口,它定义了工厂方法所创建的对象的共同接口。具体的产品类将实现这个接口。
  • 具体产品(Concrete Product): 这些是实现了产品接口的具体类,它们是工厂方法所创建的对象的实际实例。
  • 工厂(Factory):这是一个抽象类或接口,它声明了一个工厂方法,该方法返回一个产品对象。具体的工厂类将实现这个工厂方法来创建具体产品的实例。
  • 具体工厂(Concrete Factory): 这些是实现了工厂接口的具体类,它们负责实际创建具体产品的实例。

工厂模式的主要优点包括:

  • 隐藏了对象的创建细节,客户端代码不需要知道具体的实例化过程。
  • 提高了代码的灵活性和可维护性,因为客户端代码与具体类解耦。
  • 可以根据需要使用不同的工厂来创建不同的产品实例,从而实现了多态性。

工厂模式的一些常见实现包括:

  • 简单工厂模式:由一个工厂类根据不同的条件创建不同的产品实例。
  • 工厂方法模式:每个具体产品对应一个具体工厂,每个具体工厂只负责创建一个具体产品。
  • 抽象工厂模式:多个抽象产品对应多个抽象工厂,每个具体工厂负责创建一组具体产品。

工厂模式在实际应用中广泛使用,它帮助解决了对象的创建问题,使代码更具扩展性和可维护性。

简单工厂模式代码案例



import java.util.HashMap;
import java.util.Map;

/**
 * @author Wang
 */
public class SynFileFactory {

    private final static Map<String, AbstractSynFileHandler<?>> DATA_MESSAGE_FORWARD_MAPPING = new HashMap<>();

    private SynFileFactory() {

    }


    public static void registerHandler(String fileName, AbstractSynFileHandler<?> handler) {
        DATA_MESSAGE_FORWARD_MAPPING.put(fileName, handler);
    }

    public static AbstractSynFileHandler<?> getHandler(String fileName) {
        return DATA_MESSAGE_FORWARD_MAPPING.get(fileName);
    }

}

在这个代码中,SynFileFactory 就充当了一个工厂类的角色。工厂类的主要目的是创建和管理对象的实例,以及提供一种统一的方式来获取对象。

在这个工厂类中:

  • DATA_MESSAGE_FORWARD_MAPPING 是一个存储不同文件处理器的映射关系的集合。
  • registerHandler 方法用于将文件名和对应的文件处理器注册到映射集合中。
  • getHandler 方法用于根据文件名从映射集合中获取对应的文件处理器。

通过这个工厂类,您可以动态地注册不同的文件处理器,并在需要时获取正确的处理器实例,而无需了解具体的实现细节。这种方式可以使客户端代码与具体的文件处理器类解耦,使得代码更加灵活、可维护和可扩展。

总之,这段代码实现了工厂模式,它提供了一个集中管理和创建不同类型对象的方式,帮助减少了代码的耦合性并提高了可维护性。文章来源地址https://www.toymoban.com/news/detail-656252.html

到了这里,关于Java设计模式 (二) 工厂模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java设计模式【抽象工厂模式】

    抽象工厂模式 是对简单工厂模式的一个变种,它允许通过一个统一的接口来创建不同的产品实例,而无需指定具体的子类。在这个模式中,我们只关心产品的抽象接口,而将具体的产品实现留给子类去实现。这样,我们可以通过创建不同的工厂对象来创建不同的产品实例,而

    2024年02月05日
    浏览(48)
  • java设计模式-工厂方法模式

    定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程; 在系统增加新的产品时只需要添加

    2024年02月04日
    浏览(46)
  • Java设计模式 (二) 工厂模式

    什么是工厂模式? 工厂模式是一种创建型设计模式,它提供了一种统一的方式来创建对象,隐藏了对象的创建细节,使客户端代码与具体类的实例化过程解耦。工厂模式可以帮助您在不暴露对象创建细节的情况下实例化对象,从而提高代码的灵活性和可维护性。 工厂模式通常

    2024年02月12日
    浏览(36)
  • Java工厂设计模式

    工厂设计模式是一种创建型设计模式,它允许你创建对象,但不暴露其创建逻辑。该模式定义了一个工厂类,该类负责创建对象。这样,客户端代码只需知道如何与工厂交互,而不必知道对象的实际创建方式。 下面是工厂设计模式的通用结构:

    2024年02月07日
    浏览(34)
  • Java设计模式---单例 工厂 代理模式

    单例模式是设计模式中的一种,属于创建型模式。在软件工程中,单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于那些需要频繁实例化然后引用,且创建新实例的开销较大的类,例如数据库连接池、缓存管理等。 意图 :保证一个类仅有一个实例

    2024年01月24日
    浏览(52)
  • Java工厂方法设计模式

    工厂方法模式是 Java 中常用的一种创建型设计模式,它通过定义一个抽象的工厂接口来创建对象,从而将对象的创建与具体业务逻辑分离开来,提高了代码的可维护性和可读性。 抽象工厂:定义了创建产品对象的接口。 具体工厂:实现了抽象工厂中定义的接口,负责创建具

    2024年02月13日
    浏览(44)
  • Java与设计模式(1):简单工厂模式

    简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的方式,将对象的创建逻辑封装在一个工厂类中,而不是直接在客户端代码中进行实例化。 在简单工厂模式中,有三个主要角色: 工厂类(Factory Class):负责创建具体对象的工厂类。它通常包

    2024年02月11日
    浏览(50)
  • Java特性之设计模式【抽象工厂模式】

    概述 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。

    2024年02月10日
    浏览(38)
  • Java与设计模式(2):工厂方法模式

    工厂方法模式是一种创建型设计模式,它提供了一种将对象的创建委托给子类的方式。在工厂方法模式中,我们定义一个抽象的工厂类,该类负责定义创建对象的接口,但具体的对象创建由子类来实现。这样可以将对象的创建和使用解耦,使得系统更加灵活和可扩展。 工厂方

    2024年02月11日
    浏览(50)
  • Java 基础:设计模式之工厂方法模式

    工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它提供了一个创建对象的通用接口,但将实际创建逻辑推迟到子类中实现。这种模式允许客户端使用抽象接口来创建特定类型的对象,而无需了解具体的实现细节。以下是工厂方法模式的详细分析: 一. 定义与目的

    2024年04月29日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包