Builder Pattern —— Structure Class

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

Core

建造者模式又称为生成器模式,主要用于对复杂对象的构建、初始化,它可以将多个简单的组件对象按顺序一步步组装起来最终构建成一个复杂的成品对象

与工厂系列模式不同的是,建造者模式的主要目的在于把烦琐的构建过程从不同对象中抽离出来,使其脱离并独立于产品类与工厂类,最终实现用同一套标准的制造工序能够产出不同的产品

Key elements

  • 抽象建造者 interface
  • 产品
  • 具体建造者 A
  • 具体建造者 B
  • 具体管理者(也叫监督者)生产产品 [可选]
  • Client

Example of House building

使用房屋建造这个场景来讲述Builder Pattern真是再合适不过了,毕竟我是学过相关课程。

// 抽象建造者
public interface HouseBuilder {
    void setWall(String wall);
    void setRoof(String roof);
    void setFloor(String floor);
    House getHouse();
}

产品 —— 这里的产品是盖房(盖房流程很多)

// 产品(房屋)
public class House implements HouseBuilder{
    private String wall;
    private String roof;
    private String floor;

    public void setWall(String wall) {
        this.wall = wall;
    }

    public void setRoof(String roof) {
        this.roof = roof;
    }

    public void setFloor(String floor) {
        this.floor = floor;
    }

    @Override
    public House getHouse() {
        System.out.println(this.floor);
        System.out.println(this.wall);
        System.out.println(this.roof);
        return this;
    }
}

具体实施者

// 开发商 A
public class ConcreteHouseBuilderA implements HouseBuilder {
    private House house = new House();

    @Override
    public void setWall(String wall) {
        house.setWall(wall + "I am A 供应商");
    }

    @Override
    public void setRoof(String roof) {
        house.setRoof(roof);
    }

    @Override
    public void setFloor(String floor) {
        house.setFloor(floor);
    }

    @Override
    public House getHouse() {
        return house;
    }
}


// 开发商 B
public class ConcreteHouseBuilderB implements HouseBuilder {
    private House house = new House();

    @Override
    public void setWall(String wall) {
        house.setWall(wall + "I am B 供应商");
    }

    @Override
    public void setRoof(String roof) {
        house.setRoof(roof);
    }

    @Override
    public void setFloor(String floor) {
        house.setFloor(floor);
    }

    @Override
    public House getHouse() {
        return house;
    }
}

管理者:

// 工程监理
// 工程总监的角色就像电影制作中的导演一样,他从宏观上管理项目并指导整个施工队的建造流程.
public class Director {

    private HouseBuilder houseBuilder;

    public Director(HouseBuilder builder) {
        this.houseBuilder = builder;
    }

    public void setBuilder(HouseBuilder builder) {
        this.houseBuilder = builder;
    }

    public House direct() {
        // 第一步,打好地基
        houseBuilder.setFloor("口口口口口口口口 I am 地基");
        // 第二步,建造框架、增体
        houseBuilder.setWall("| 田 |  | 田 |  ");
        // 第三步,封顶
        houseBuilder.setRoof("_______________ I am 屋顶");
        return houseBuilder.getHouse();
    }
}

Client

// 项目实施
public class Client {
    public static void main(String[] args) {
        // 招标之后 选了 B供应商
        Director director = new Director(new ConcreteHouseBuilderB());
        director.direct().getHouse();
    }
}

out:文章来源地址https://www.toymoban.com/news/detail-682511.html

口口口口口口口口 I am 地基
| 田 |  | 田 |  I am B 供应商
_______________ I am 屋顶

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

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

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

相关文章

  • 设计模式--建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一种创建型设计模式,它关注如何按照一定的步骤和规则创建复杂对象。建造者模式的主要目的是将一个复杂对象的构建过程与其表示分离,从而使同样的构建过程可以创建不同的表示。 在建造者模式中,通常有以下几个核心角色: 产品(Prod

    2024年02月11日
    浏览(38)
  • 设计模式五:建造者模式(Builder Pattern)

    建造者模式(Builder Pattern)是一种创建型设计模式,用于通过一系列步骤来构建复杂对象。它将对象的构建过程与其表示分离,从而允许相同的构建过程可以创建不同的表示。 建造者模式中的几个角色: 产品(Product):表示被构建的复杂对象。 抽象建造者(Builder):定义了构建复

    2024年02月15日
    浏览(39)
  • (一)创建型设计模式:3、建造者模式(Builder Pattern)

    目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C++实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representation. By doing so the same construction process ca

    2024年02月13日
    浏览(39)
  • Java设计模式之建造者模式详解(Builder Pattern)

    在日常的开发工作中,我们常常需要创建一些复杂的对象。这些对象可能包含许多不同的属性,并且这些属性的初始化过程可能相当复杂。在这种情况下,建造者模式是一种非常有用的设计模式,因为它允许我们分步骤地创建复杂的对象。 概念和原理: 建造者模式(Builder

    2024年02月09日
    浏览(45)
  • 【Java设计模式】建造者模式 & 注解@Builder

    将一个复杂对象的构造与它的表示分离 ,使同样的构建过程可以创建不同的表示。它使将一个复杂的对象分解成多个简单的对象,然后一步步构建而成。 每一个具体建造者都相对独立,而与其它的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,

    2024年02月14日
    浏览(43)
  • 【设计模式】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)

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

    2024年02月16日
    浏览(53)
  • 【设计模式——学习笔记】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)

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

    2024年02月15日
    浏览(41)
  • 生成器设计模式(Builder Design Pattern)[论点:概念、图示、示例、框架中的应用、场景]

            生成器设计模式(Builder Design Pattern)是一种创建型设计模式,用于处理具有多个属性和复杂构造过程的对象。生成器模式通过将对象的构建过程与其表示分离,使得相同的构建过程可以创建不同的表示。这有助于减少构造函数的参数个数,提高代码的可读性和可维

    2023年04月11日
    浏览(44)
  • java与es8实战之一:以builder pattern开篇

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《java与es8实战》系列是欣宸与2022年夏季推出的原创系列,如标题所述,该系列从一个java程序员视角去学习和实践elasticsearch的8.2版本,目标是与大家一起掌握与elasticsearch开发相关的技能,以应对实

    2024年02月11日
    浏览(38)
  • java与es8实战之六:用JSON创建请求对象(比builder pattern更加直观简洁)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《java与es8实战》系列的第六篇,经过前面的实战,咱们初步掌握了一些Java对ES的基本操作,通过发送请求对象(例如CreateIndexResponse)到ES服务端,达到操作ES的目的,但是细心的您可能发现了:

    2024年02月10日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包