建造者模式之通俗易懂

厚积薄发打卡Day31 :[kuangStudy] GoF23通俗易懂的设计模式之 <建造者模式> 前言: 视频教程:狂神说Java之通俗易懂的23种设计模式 什么是设计模式? 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。 它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的 解决方案==> 一种思维,一种态度,一种进步 1995年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软 件的基础》一书,共收录了23种设计模式,从此树立了软件设计模式领域的里程碑,人称 【GoF 阅读详情

1、是什么

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
构建者模式一般用在构建流程或者组成部件固定的场合,将这些部件分开构建成为组件对象,再将这些组件对象整合成为目标对象。

有以下几个角色:
1 builder:为创建一个产品对象的各个部件指定抽象接口。
2 ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并 提供一个检索产品的接口。
3 Director:构造一个使用Builder接口的对象。
4 Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。

类图

在这里插入图片描述

2、干嘛用

1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 [1]
2 当构造过程必须允许被构造的对象有不同表示时

3、怎么用

(1) 产品角色:包含多个组成部件的复杂对象。

public class Product {
    private String partA;
    private String partB;
    private String partC;
    public void setPartA(String partA) {
        this.partA = partA;
    }
    public void setPartB(String partB) {
        this.partB = partB;
    }
    public void setPartC(String partC) {
        this.partC = partC;
    }
    public void show() {
        //显示产品的特性
    }
}

(2) 抽象建造者:包含创建产品各个子部件的抽象方法。

public abstract class Builder {
    //创建产品对象
    protected Product product = new Product();
    public abstract void buildPartA();
    public abstract void buildPartB();
    public abstract void buildPartC();
    //返回产品对象
    public Product getResult() {
        return product;
    }
}

(3) 具体建造者:实现了抽象建造者接口。

public class ConcreteBuilder extends Builder {
    public void buildPartA() {
        product.setPartA("建造 PartA");
    }

    public void buildPartB() {
        product.setPartA("建造 PartB");
    }
    public void buildPartC() {
        product.setPartA("建造 PartC");
    }
}

(4) 指挥者:调用建造者中的方法完成复杂对象的创建。

public class Director {
    private Builder builder;
    public Director(Builder builder) {
        this.builder = builder;
    }
    //产品构建与组装方法
    public Product construct() {
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
        return builder.getResult();
    }
}

(5) 客户端

public class Client {
    public static void main(String[] args) {
        Builder builder = new ConcreteBuilder();
        Director director = new Director(builder);
        Product product = director.construct();
        product.show();
    }
}

请求http接口的时候参数过多而且来自不同地方的时候可以用建造者模式组装,有空补上这段代码。

模拟IC实战—30天精通Sigma-delta(Σ-Δ) ADC 行为级建模与仿真 本文为模拟IC工程师提供了一套为期30天的Sigma-delta ADC行为级建模与仿真实战指南。文章深入浅出地阐释了Sigma-delta ADC如何通过过采样和噪声整形两大核心技术实现高精度转换,并重点演示了如何使用Python从零搭建一阶和二阶调制器模型,进行性能仿真与关键指标分析,为后续电路级设计提供清晰的性能预算和架构指导。 阅读详情

相关推荐

SLUB DEBUG 检测slab 内存泄漏

文章介绍如何定位linux 内核中slab 内存泄漏。

一叶知秋的博客 1490

一文搞懂设计模式之建造者模式

建造者模式(也称为生成器模式)是一种创建型设计模式

all_about_WZY的博客 1565

CATIA V5新手必看:从零开始的界面导航与基础操作指南(附常见问题解决)

本文为CATIA V5新手提供全面的界面导航与基础操作指南,涵盖核心工作区解析、文件管理规范、视图操作秘籍及常见问题解决方案。通过详细的步骤说明和实用技巧,帮助用户快速掌握这一工业设计标杆软件,特别适合从SolidWorks、AutoCAD等软件过渡的用户。

b9c0d的博客 527

Java设计模式系列 什么是建造者模式(超通俗易懂)

Java中的建造者模式是一种**创建对象**的设计模式,属于**创建型设计模式**。划重点:创建型设计模式,不清楚的话看我这边博客,对23中设计模式的整体简略介绍

weixin_45663027的博客 160

10行代码搞定QMT实盘交易:手把手教你用Python自动化买卖股票(附完整源代码)

本文提供了一份详尽的QMT实盘交易教程,手把手教你使用Python构建自动化交易系统。内容涵盖环境配置、账户连接、查询与下单等核心代码,并附有完整的源代码示例,帮助开发者快速掌握从零到实盘的完整流程,实现安全可靠的股票自动化买卖。

weixin_29214335的博客 439

Stata做DID平行趋势检验,用coefplot画图时遇到的3个坑及解决办法

本文详细解析了使用Stata进行DID平行趋势检验时,利用coefplot绘图可能遇到的三个常见问题及其解决方案。包括基线期选择陷阱、置信区间变形和图形元素错位,提供专业调试步骤和高阶技巧,帮助研究者高效完成学术级图表绘制。

weixin_42530458的博客 324

设计模式 | 建造者模式的通俗讲解~

1. 建造者模式的介绍 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式主要用于构建复杂的对象,同时客户端并不需要知道对象是如何构建的。 其中要涉及到以下几个角色: 可以简单的理解为我们的建造者 Buidler 是一个大工厂,其中有多个小工厂负责创建我们最终目标产品 Product 的各个组成部分。当把各个组成部分构建好了,最终便可得到我们需要的复杂对象。就比如说要组装一台电脑,需要将其中的各个零件按照一定顺序组装才能得到我们最终想要的电脑,而这个具体的组装顺序则

qq_45716120的博客 400

Docker “docker login“ 失败? 登录阿里云镜像仓库仓库 unauthorized: authentication required

文章目录听说你 login fail?来,让我们解决一下!登录,撒花 听说你 login fail? 美滋滋的在服务器上安装完成Docker应用,开始配置阿里云镜像加速?然后被阿里云官方文档蹂躏?别急别急,让我来拯救你。 我们先来看看 阿里云官方文档 Docker镜像基本操作: 好家伙,emmm… 上来直接就Login Succeeded,这不简直so easy?我们也来照着操作操作: docker@default-online:~$ docker login registry.cn-hangzhou.a

zhuzicc的博客 1万+

设计模式之深入理解创建者模式

平时大家说的比较多的还是工厂方法模式或抽象工厂模式,今天说一说创建者模式。 一.定义 指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。 二.特点 1、它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。 2、它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。 三.优缺点 1、优点: 封装性好,构建和表示分离; 扩展性好,各个具体的建造者相互独立,有利于系统的解耦; 客户端不必知道产品内部组成的细节,建造者可以对创

差池 610

【RTD】AD7793驱动程序

AD7793完整驱动程序,支持两线、三线、四线RTD。

只要思想不滑坡,想法总比问题多。 6172

Allegro快速编辑丝印文字操作指导

选择setup-Application Mode-placement edit。Allegro支持丝印文字的编辑,下面介绍快速编辑丝印文字的两种方法如下。这个功能还支持拷贝粘贴,可以从其它地方拷贝过来,免去了书写的麻烦。出现text edit窗口,输入自己需要的文字,点击ok。鼠标移动到丝印文字位置,文字会被高亮起来。Allegro快速编辑丝印文字操作指导。点击丝印文字,丝印会被高亮起来。选择Text edit 命令。输入需要更改后的文字,如下。右击选择text edit。以编辑下方丝印文字为例。

weixin_54787054的博客 4192

最通俗易懂的设计模式之建造者模式

认识建造者模式,首先得清楚建造者模式使用涉及的角色 首先定义抽象的Builder public abstract class Builder { abstract void builder1();//地基 abstract void builder2();//钢筋 abstract void builder3();//浦电线 abstract void builder4();//粉刷 abstract Product getProduct(); } .

sgy86的博客 205

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

建造者模式(Builder Pattern)-(最通俗易懂的案例)

1.概要介绍 1.1定义 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 1.2适用环境 需要生成的产品对象有复杂的内部结构,这些产品对象通常包含多个成员属性。 对象的创建过程独立于创建该对象的类。在建造者模式中引入了指挥者类,将创建过程封装在指挥者类中,而不在建造者类中。 需要生成的产品对象的属性相互依赖,需要指定其生成...

世银的博客 948

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

通俗易懂理解建造者模式

当一个产品的构建过程是固定且复杂多变的,则可以将该产品的构建过程抽象出来。 从一个简单的例子出发 比如:组装一台电脑,你一定需要有CPU、主板、内存、硬盘以及IO外设。而每个部分你都可以选择不同的类型:CPU可以是Arm或者Intel,内存可以是台电的或是三星的等等。 这样的话,如果将构建电脑的过程抽象出来,就可以如下表示: public abstract class ComputerBuilde...

613

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

通俗易懂解释建造者模式

建造者模式是一种设计模式,用于逐步构建复杂对象。它将对象的构建过程与表示分开,让你可以灵活地创建不同的对象。

weixin_56958323的博客 561

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

通俗易懂的详解建造者模式 。 demo详细

序言 在看Retrofit源码时,可以看到里面用到了大量的设计模式,如果我们非常了解设计模式对理解是很有帮助的,在Rerofit里有用到建造者模式。 建造者模式定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以生成不同的表示。建造者模式也是对象创建行模式。 说明:单看这个定义初学者也是很蒙, 大概意思是不需要关心复杂对象创建过程,只需要知道建造者类型即可,建造者才关心这个复杂...

yihuliunian的博客 346

设计模式之-建造者模式通俗易懂理解,以及建造者模式的使用场景和示列代码

建造者模式是一种创建型设计模式,它可以将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。它允许客户端通过指定需要创建的对象类型和配置选项来构建对象,而无需知道具体的构建细节。使用建造者模式的主要目的是将对象的构建过程封装在一个独立的建造者类中,使得构建过程可以灵活地组合,而不需要对客户端暴露具体的构建细节。这样可以提高代码的可读性、可维护性和可扩展性。

咖啡程序员 1464

通俗易懂的java设计模式之 --建造者模式

建造者模式

zmxnn的博客 224

通俗易懂设计模式解析——建造者模式

前言   在本篇文章中,我们重点介绍建造者模式(Builder Pattern),建造者模式顾名思义,与建造创建相关。事实也是如此建造者模式也是创建型中的一种。在我们平常生活中会有比较复杂的东西的组成过程。比如电脑组成、手机组成、电视组成、等等。就拿电脑组成来说。可以由主板、Cpu、显卡等等组成。但是组成的算法步骤是一样的。只是不同的东西组装起来结果不一样而已。 建造者模式介绍 一...

dingxian9983的博客 324

Java设计模式(建造者模式)通俗易懂

建造者模式 对于有多个成员属性,且不是每个成员属性都需要的类进行实例化,如果用构造函数,或set方法赋值,代码就不通俗易懂了。 例如有一个网络请求的类,有以下这些成员属性构成,但是发起一个网络请求,用不到这么多的参数,显然构建这个对象就有点复杂。 使用建造者模式 角色 产品角色 (Request类) 建造者角色 (Request.Builder类) import java.util.LinkedHashMap; import java.util.Map; public class Request

liuqi199707的博客 384

Java23种设计模式之建造者模式的学习(通俗易懂)

源码链接(Gitee码云):https://gitee.com/oldou/javadesignpatterns 这里有我整理好的Java23种设计模式的源码以及博客教程,博客教程中介绍了Java23种设计的模式的各种实现方式以及应用场景,非常适用于学习以及提高我们的设计思维,如果对大家有所帮助,请记得star一下给予作者一定的精神支持,你的star是我写出更好的博客的动力,谢谢大家。 建造者模式(Builder pattern) 建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式。 ..

weixin_43246215的博客 3302

设计模式之建造者模式(通俗易懂--代码辅助理解【Java版】)

创建型模式:工厂方法、抽象方法、建造者、原型、单例。结构型模式有:适配器、桥接、组合、装饰器、外观、享元、代理。行为型模式有:责任链、命令、解释器、迭代器、中介、备忘录、观察者、状态、策略、模板方法、访问者。常用设计模式:单例模式、工厂模式、代理模式、策略模式&模板模式、门面模式、责任链模式、装饰器模式、组合模式、builder模式。} } }List;

qq_45929019的博客 1497

建造者模式深入理解:演示建造单个和多个产品的实践,结合模板模式,通俗易懂

建造者模式(Builder Pattern)是一种创建型设计模式,它主要用于将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表现形式。这种模式通过一系列可重用的独立的类(称为建造者或构建器)来一步一步创建一个复杂的对象,而不需要知道具体的内部构造细节

洛雪 1404

【秒懂】建造者模式(零基础快速上手,简单通俗易懂)

零基础快速上手《设计模式》点击如下传送门秒懂—设计模式。

记录所学所思所想所吾 340

通俗易懂系列 | 设计模式(八):建造者模式

介绍 今天我们将研究java中的Builder模式。Builder 设计模式是一种创造性的设计模式,如工厂模式和抽象工厂模式。 当Object包含许多属性时,引入了Builder模式来解决Factory和Abstract Factory设计模式的一些问题。 当Object包含许多属性时,Factory和Abstract Factory设计模式存在三个主要问题。 从客户端程序传递到Factory类...

JaJian的博客 278
上一篇: 装饰者模式之通俗易懂
下一篇: VirtualBox安装和配置虚拟主机
沐果果
博客等级 码龄10年 19粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值