Java 建造者模式详解

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

建造者模式是Java中一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程分解为多个简单对象的构建过程,并且使这些构建过程按照一定的顺序进行组装,最终实现对复杂对象的创建。本文将详细介绍Java中的建造者模式,包括它的定义、结构、实现方法以及应用场景等方面。

前言

当我们需要创建一个具有多个属性或组件的对象时,通常需要使用大量的构造函数和setter方法。随着属性或组件的增加,这种方式很容易变得混乱和难以维护。此时,建造者模式就可以很好地解决这个问题。

建造者模式将对象的构建过程分解为多个步骤,由调用端根据需要选择所需的步骤,并按照一定的顺序进行组装,最终实现对复杂对象的创建。通过使用建造者模式,可以将对象的构建过程和具体的构建实现分离开来,从而提高代码的可维护性和可读性。

定义

建造者模式是一种创建型模式,其定义如下:

将一个复杂对象的构建过程与其表示相分离,使得同样的构建过程可以创建不同的表示。

换句话说,建造者模式将对象的构建过程分解为多个简单对象的构建过程,并按照一定的顺序进行组装,从而实现对复杂对象的创建。通过使用建造者模式,可以使对象的构建过程和具体的构建实现相互独立,从而提高代码的可维护性和可读性。

结构

建造者模式包含以下几个角色:

  1. 产品类(Product)

产品类是一个具有多个属性或组件的复杂对象,它由多个简单对象组成。

public class Product {
    private String part1;
    private String part2;
    private String part3;

    // 省略 getter 和 setter 方法
}
  1. 抽象建造者类(Builder)

建造者类是一个抽象类或接口,它定义了创建产品对象的各个部分的抽象方法。在实际应用中,通常需要定义多个不同的建造者类来创建不同类型的产品对象。

public interface Builder {
    void buildPart1();
    void buildPart2();
    void buildPart3();
    Product getResult();
}
  1. 具体建造者类(ConcreteBuilder)

具体建造者类是抽象建造者类的子类,它实现了抽象建造者类中定义的所有抽象方法,并且根据具体需求组装产品对象的各个部分。

public class ConcreteBuilder implements Builder {
    private Product product = new Product();

    @Override
    public void buildPart1() {
        product.setPart1("part1");
    }

    @Override
    public void buildPart2() {
        product.setPart2("part2");
    }

    @Override
    public void buildPart3() {
        product.setPart3("part3");
    }

    @Override
    public Product getResult() {
        return product;
    }
}
  1. 指导者类(Director)

指导者类负责创建具体建造者类的实例,并调用具体建造者类中的方法来组装产品对象的各个部分。在实际应用中,通常只需要一个指导者类即可。

public class Director {
    public void construct(Builder builder) {
        builder.buildPart1();
        builder.buildPart2();
        builder.buildPart3();
    }
}

以上就是建造者模式的结构,下面我们来详细说明其实现方法。

实现方法

在实际使用建造者模式时,通常需要按照以下步骤进行操作:

  1. 定义产品类

首先,需要定义一个具有多个属性或组件的复杂对象,即产品类。

  1. 定义抽象建造者类

接着,需要定义一个抽象建造者类或接口,其中包含了创建产品对象各个部分的抽象方法。

  1. 定义具体建造者类

然后,需要定义一个或多个具体建造者类,它们是抽象建造者类的子类,实现了抽象建造者类中定义的抽象方法,并且根据具体需求组装产品对象的各个部分。

  1. 定义指导者类

最后,需要定义一个指导者类,它负责创建具体建造者类的实例,并调用具体建造者类中的方法来组装产品对象的各个部分。在实际应用中,通常只需要一个指导者类即可。

  1. 使用建造者模式创建对象

最后,我们可以使用建造者模式来创建对象,即先创建一个具体建造者类的实例,然后将该实例交给指导者类进行组装,最终得到一个完整的产品对象。

Builder builder = new ConcreteBuilder();
Director director = new Director();
director.construct(builder);
Product product = builder.getResult();

以上就是建造者模式的实现方法,下面我们来介绍一下它的应用场景。

应用场景

建造者模式适用于以下场景:

  1. 对象的构建过程比较复杂

当需要创建的对象较为复杂,需要通过多个步骤来生成时,可以使用建造者模式。

  1. 需要生成不同表示的对象

当需要按照不同的逻辑顺序来创建对象时,或者需要生成不同表示的对象时,可以使用建造者模式。

  1. 希望分离对象的构建过程和表示

当希望分离对象的构建过程和具体表示时,可以使用建造者模式。

例如,在Java中,StringBuilder就是使用了建造者模式。在程序中,我们经常需要拼接字符串,如果使用String类型来拼接字符串,每次拼接都会创建一个新的String对象,会浪费大量的内存。而使用StringBuilder,它将所需的字符串逐个添加进去,并在需要时将它们组装成一个完整的字符串对象,从而避免了不必要的内存浪费。

另外,在Java中,JDK中提供的Calendar类也使用了建造者模式。在创建日期时间对象时,需要设置年、月、日、时、分、秒等信息,如果使用普通的构造函数或setter方法来设置这些信息,会使得代码变得冗长且难以维护。而通过使用Calendar类提供的建造者模式,可以将这些设置信息分解为多个简单的步骤,并按照一定的顺序进行组装,从而实现对日期时间对象的创建。

总结

通过本文的介绍,我们了解了Java中的建造者模式,包括它的定义、结构、实现方法以及应用场景等方面。建造者模式将对象的构建过程分解为多个简单对象的构建过程,并按照一定的顺序进行组装,最终实现对复杂对象的创建。通过使用建造者模式,可以将对象的构建过程和具体的构建实现分离开来,从而提高代码的可维护性和可读性。文章来源地址https://www.toymoban.com/news/detail-440464.html

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

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

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

相关文章

  • 创建型模式-建造者模式

    使用多个简单的对象一步一步构建成一个复杂的对象 主要解决: 主要解决在软件系统中,有时候面临着\\\"一个复杂对象\\\"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算

    2024年02月11日
    浏览(32)
  • 创建型模式 | 建造者模式

    建造者模式 又叫生成器模式,是一种对象的构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。创建者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,

    2024年01月22日
    浏览(32)
  • 创建型模式 - 建造者模式

    将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。不同的构建器,相同的

    2024年02月16日
    浏览(25)
  • 设计模式:创建者模式 - 建造者模式

    将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。不同的构建器,相同的

    2023年04月24日
    浏览(46)
  • 设计模式-创建型模式之建造者模式

    无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者

    2023年04月20日
    浏览(37)
  • 设计模式—创建型模式之建造者模式

    如果我们创建的对象比较复杂,但其细节还要暴露给使用者,这样就需要用到建造者模式。 建造者设计模式, 屏蔽过程,而不屏蔽细节。 比如我们有一个手机类,定义如下: 我们想定制自己的一个手机,可以先定义一个抽象的构建者; 如果我们想定制一个 香蕉手机 ,就可

    2024年02月06日
    浏览(43)
  • 设计模式之创建型模式---建造者模式

    建造者模式是一种创建型设计模式,其核心思想是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式将复杂对象的创建过程拆分成多个简单对象的创建过程,并将这些简单对象组合起来构建出复杂对象。 建造者模式的基本构成通常包括

    2024年04月15日
    浏览(48)
  • 创建型(三) - 建造者模式

    一、概念 建造者模式(Builder Pattern) :也叫构建者模式,或生成器模式,指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。简单点就是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。 优点 :封装性好,构建和表示分离。

    2024年02月12日
    浏览(42)
  • 设计模式-创建型模式(单例、工厂、建造、原型)

    设计模式:软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。 面向对象三大特性:封装、继承、多态。 面向对象设计的SOLID原则: (1)开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情

    2024年02月08日
    浏览(52)
  • 设计模式 - 创建型模式考点篇:工厂模式、建造者模式

    目录 一、创建型模式 一句话概括 1.1、工厂模式 1.1.1、简单工厂模式(非 23 种经典设计模式) 概述 案例 1.1.2、静态工厂(扩展) 1.1.3、工厂方法模式 概念 案例 1.2、建造者模式 1.2.1、概念 1.2.2、案例 1.2.3、建造者模式扩展:链式编程底层 1.3、工厂方法模式 VS 建造者模式 创

    2024年02月07日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包