Builder 建造者模式

建造者模式 (Builder Pattern) 建造者模式是处理复杂对象创建的强大工具,它将对象的构建过程与表示分离,提供了灵活且清晰的对象创建方式。 阅读详情

 模式定义
Builder模式很好地将一个复杂对象的创建与该对象内部的各个部件的组装分离开来。它和 Abstract Factory模式有相似的地方,但是Abstract Factory主要提供了一个创建一些列相关或相互依赖的对象的接口,无需知道指定他们具体的类(生产者),而Builder模式着重于部件的组装和对象创建的关系。

使用范围

  • 对象的创建由一系列复杂的部件组装而成时
  • 不同的对象有不同的组装过程

使用方法
考察Builder的类图

Director好比是一个发号施令者,它需要完成一个对象Product。可这个对象有不同的组装方式,即部件Part可以不同,部件之间的关系也可以不同。完成这个组装方式的人可以有多个不同的ConcreteBuilder,他们实施不同的部件与部件之间的组装,最后交付给Director一个完整的Product。

举例说明
来拿开发商开发一套房子来作为例子。开发商好比一个Direcor,它的唯一目标是建造Contruct一个房子,但它本身不建设房子,任务是交由建筑商Builder完成。

public class Director {
public void contruct(AbstractHouseBuilder builder){
builder.design();
builder.build();
builder.decorate();
}
}

AbstractHouseBuilder好比一个抽象概念的建筑商,建筑一套房子必须完成如下的部件组装过程:design(), build()和最后的decorate()。

public abstract class AbstractHouseBuilder {
public abstract void design();
public abstract void build();
public abstract void decorate();
}

CommonHouseBuilder好比是一个专门建设普通住宅的建筑商,注意它没有具体的decorate()方法主体。

public class CommonHouseBuilder extends AbstractHouseBuilder{
public void design() {
System.out.println("common house: design");
}

public void build() {
System.out.println("common house: build");
}

public void decorate() {
// do nothing
return;
}
}

GoodHouseBuilder是一个专门建设精装修高档住宅的建筑商,部件的构造方法和CommonHouseBuilder不同,同时它还有decorate()方法。此处它和CommonHouseBuilder的区别在于组装方式的不同。

public class GoodHouseBuilder extends AbstractHouseBuilder{
public void design() {
System.out.println("good house: design");
}

public void build() {
System.out.println("common house: build");
}

public void decorate() {
System.out.println("good house: decorate");
}
}

Builder模式的类结构图为:

客户端的使用方法为:

public class Client {
public static void main(String args[]){
Director director = new Director();
AbstractHouseBuilder builder = new CommonHouseBuilder();
director.contruct(builder);

builder = new GoodHouseBuilder();
director.contruct(builder);
}
}

下载示例

ExcelVBA批量添加PDF文件 如图1所示,"BOM-01.xlsx"工作簿中的Sheet1工作表根据B列图号单元格中的内容,在图2所示的文件夹中找到对应的PDF文件,然后嵌入到相应的N列,双击N列中所示的图标,会打开PDF文件,是源文件的副本,即删除源文件,也可以打开N列的文件。 图1 根据B列的图号在N列嵌入对应的PDF文件 图2 PDF文件 图3 文件格式 Sub 导入文件() Ap... 阅读详情

相关推荐

看我如何用kali实时截获隔壁"小姐姐"的上网隐私(结尾有彩蛋)

看我如何用kali实时截获隔壁"小姐姐"的手机图片等信息(结尾有彩蛋哦) 首先圈下重点:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或...

SoulCat 2万+

建造者模式-Builder Pattern

建造者模式(Builder Pattern)是一种创建型设计模式,它可以让你构建复杂对象时更加灵活和可控。这种模式的主要目的是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在软件开发中,我们经常会遇到一些复杂的对象,这些对象通常由多个部分组成,而且每个部分的创建和组合可能需要花费大量的时间和精力。为了解决这个问题,我们可以使用建造者模式来简化对象的构建过程。建造者模式的核心思想是将复杂对象的构建过程分解为多个简单的步骤,每个步骤负责创建一个特定的部分。

jaune162的专栏,最新动态请关注:https://jaune162.blog 1383

中兴问天 BE7200MAX SFP 光口用华为猫棒替代光猫完整配置教程

PPPoE 账号密码:若原光猫为 Route 模式,在宽带设置页可见用户名,密码需按 F12 打开浏览器开发者模式,点击密码输入框,查看代码中 “value=” 后的内容即为明文密码。若仍失败,核对 PON 类型是否与运营商网络匹配。PON 认证信息:LOID(逻辑 ID,部分地区含密码)、设备 SN 码(标签或设备信息页)、PON 类型(GPON/EPON,运营商网络类型)。电脑保持与路由器连接,访问路由器管理地址(默认通常为 192.168.5.1,可参考路由器说明书),登录后台。

Gulper_Eel的博客 3355

设计模式-03建造者模式Builder Pattern

建造者模式摘要:建造者模式是一种创建型设计模式,用于分步骤构建复杂对象,使构建过程与对象表示分离。该模式适用于需要创建包含多个组成部分的对象,特别是当这些部分可选或构建顺序可变时。通过UML类图展示了经典建造者模式和链式建造者模式的结构差异,并提供了Java实现示例。实现方式包括通过Builder内部类分步骤设置对象属性,最后通过build()方法返回完整对象,使代码更清晰且避免构造器参数过多的问题。

d3y1`5 81_09 1209

source tree clone error:fatal remote error: Repository not found

source tree clone error:fatal remote error: Repository not found

Linda的前端开发路 3078

上位机图像处理和嵌入式模块部署(qmacvisual入门)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 虽然我们前面学习了很多的知识点,比如说在windows这边,用qt写界面,用opencv写图像处理代码;在linux这边先用树莓派测试,最后再部署到自己的平台上面。但是,对于一个商业软件是怎么运行的,很多时候我们心理还是没有底,或者说,自己写的软件距离一个商业软件还有多远,大部分学习的同学是不知道的。 就算有的同学说,这个时候可以借鉴一下vision pro,或者是

嵌入式-老费,一个分享专业嵌入式知识的blog 1231

Java 设计模式——建造者模式(Builder Pattern)

Java 设计模式——建造者模式(Builder Pattern) 一.简介 1.定义 将一个复杂对象的构建与它表示分离,使用同样的构建过程可以创建不同的表示 2.主要作用 在用户不知道对象建造过程和细节的情况下就可以直接创建复杂对象 3.如何使用 用户只需给出指定复杂对象的类型和内容,建造者模式负责按顺序创造对象(把内部建造过程和细节隐藏起来) 4.解决的问题 (1).方便用户创建复杂的对...

a158s168的博客 277

CVE-2021-22205 GITLAB 未授权 RCE 漏洞

简介 GitLab是由GitLab Inc.开发的一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,可通过Web界面访问公开或私人项目。由于GitLab存在未授权的端点,导致该漏洞在无需进行身份验证的情况下即可进行利用。 漏洞利用 上工具 python3 poc import sys import requests from bs4 import BeautifulSoup requests.packages.urllib3.disable_warnings() def .

qq_32445755的博客 886

Builder Pattern 建造者模式

建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。通俗的讲,创建一个对象一般都会有一个固定的步骤,这个固定的步骤我们把它抽象出来,每个抽象步骤都会有不同的实现方式,不同的实现方式创建出的对象也将不同。举个常见的例子,想必大家都买过车,车的生产或者组装其实就是属于建造者模式,我们知道,车的生产都需要安装发动机,变速箱,底盘等组件。我们可以把这个安装步骤抽象出来,至于到底装哪种发动机,比如宝马还是奔驰就是对该抽象安装步骤的具体实

weixin_40955388的博客 289

图形推理2-四大类六提示

图形推理笔记2

小y的学习笔记 6748

网红商品数据抓取:基于Python的高效爬虫实战

本篇博客介绍了从爬取到存储、分析和可视化网红商品数据的完整流程。通过Python的强大生态,我们能够轻松完成复杂的数据抓取任务。在实际应用中,还可以将此爬虫与机器学习模型结合,进一步挖掘数据价值。

2201_76125261的博客 1478

5、建造者模式(Builder Pattern)

建造者模式(Builder Pattern)

qq_38304915的博客 1188

Mac 安装neo4j(解压版)最新版本教程

本文介绍了在Mac M系列操作系统上安装Neo4j图数据库的具体步骤。内容包括:从官网下载解压版Neo4j社区版压缩包;通过终端命令将其解压到/opt目录并重命名;配置环境变量以便全局访问;以及常用命令如启动/停止服务、重置密码等。安装完成后,用户可通过浏览器访问http://localhost:7474,使用默认账号neo4j/neo4j登录并根据提示重置密码。该教程简洁明了地指导用户完成Neo4j在Mac上的安装配置过程。

猿小白的博客 910

一文看懂设计模式-建造者模式(builder Pattern)

1、意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示2、主要解决:主要解决在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;

2301_79351943的博客 839

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

建造者模式(Builder Pattern)详解

建造者模式是一种创建型设计模式,它允许你分步骤创建复杂对象。该模式允许你使用相同的创建代码生成不同类型和形式的对象。建造者模式的核心思想是将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种强大的创建型设计模式,特别适合于构建复杂对象。它将对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。在Java中,建造者模式特别有用,可以避免"重叠构造函数"问题,提高代码的可读性和维护性。

yk_dflkg的博客 1862

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

建造者模式(Builder Pattern)

建造者模式(Builder Pattern) 建造者模式(Builder Pattern),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 结构 参与者 Builder ——为创建一个Product对象的各个部件指定抽象接口。 ConcreteBuilder ——实现Builder的接口以构造和装配该产品的各个部件。 ——定义并明

jiangxt211的专栏 389

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

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式要求建造过程中是稳定的。 Android 用到的 Builder 模式:http://blog.youkuaiyun.com/bboyfeiyu/article/details/15504187 转载于:https://www.cnblogs.com/liyira...

diaolapei9880的博客 145

Java设计模式--建造者模式【Builder Pattern】

昨晚回到家里,我爸爸气冲冲地跟我诉苦,“哎!,干个装修容易么?顾客啥都不懂,还非得规定装修顺序,要先贴地板砖后刷墙,到时候贴好的地砖上全是泥,哪有这么干活的?”老爸干了一辈子的装修,一切事宜由他全权负责,难免心力憔悴。但是,我仔细想了下这个事情,如果老爸签订了一个公司,公司负责接活揽活,规定装修要求,老爸只负责执行,那不就轻松了吗?于是我就想起了建造者模式。       建造者模式的定义是:将一

CoderLover 481

设计模式:建造者模式(Builder Pattern)

建造者模式是一种创建型设计模式,它允许你分步骤创建复杂对象,使相同的构建过程可以创建不同的表示。;本质是 把"怎么装配"和"装成什么样"分离,让同样的装配流程可以生产不同"口味"的对象。

倔强老吕的博客 1687

建造者模式 Builder Pattern

一、模式介绍 建造者(Builder)模式和工厂模式的关注点不同:建造者模式注重零部件的组装过程,而工厂方法模式更注重零部件的创建过程,但两者可以结合使用。 1.1、定义 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成的。它将变与不变分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。 1.2、优点 封装性好,构建和表示分离 扩展性好,各个具体的建造者相互独立,有利于系统的解耦 客户端不必知道产品内部组成的细节

木易 315

建造者模式(Builder Pattern)

建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式通常包括下面几个角色: Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。 ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过...

diaoyang7352的博客 80

Java设计模式|建造者模式Builder Pattern

Java设计模式|建造者模式Builder Pattern 前言: 在日常生活中,我们可能会遇到这一类型的需求,例如一个实体类里有很多个属性,但是我们只想要其中的几种组合成一个新的对象,这个时候就可以使用建造者模式了,它提供了一种创建对象的最佳方式。建造者模式虽然比较好用,但是大家平时写代码的时候要谨记,不要滥用设计模式,不然的话可能会适得其反啊! 建造者模式 介绍:建造者模式又被称呼为生成器模式,这种类型的设计模式属于创建型模式,使用多个简单的对象一步一步构建成一个复杂的对象,将一个复杂对象的构建与它

QAQFyl的博客 547

PHP设计模式之建造者模式(Builder Pattern)

一、什么是建造者模式 定义:建造者模式(Builder Pattern)又称生成器模式,是一种构建对象的模式。 1、它可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 2、由于建造零件的过程很复杂,因此,这些零件的建造过程往往被“外部化”到另一个乘坐建造者的对象里,建造者对象返还给客户端的是一个全部零件都建造完毕的产品对象。它将产品的结构和建造过程对客户端隐藏起来。 【释义】 使用生活中的例子来解释建造者...

Albert_____的博客 375

建造者模式——Builder Pattern

建造者模式的本质:分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责装配)。从而构造出复杂的对象:这个模式的适用于:某个对象的构建过程复杂的情况下使用。由于实现了构建和装配的解耦。不同的构建器、相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。 下面参考一下代码看看建造者模式

不会停下学习的脚步,重在思考。 569

我要打十个!详解建造者模式(builder pattern)

前言 “我要打十个”,其实是我要打十个野怪! 这十个野怪呢,它们有不同的技能、装备和武器,长得也不一样。这里野怪是一个蛮复杂的对象,由各个不同的部分组成(技能、装备、武器等),不同的野怪的它们各部分之间的构成方式就不同。因此,要创建这种复杂对象,就需要使用建造者模式。 什么是建造者模式 首先建造者模式Gof 23种设计模式之一。也叫Builder模式。 是将一个复杂对象的构建和其表示相分离,使得同...

Java成魔之路 406

java建造者模式_java实现建造者模式(Builder Pattern)

一、什么是建筑者模式?建造者模式(Builder Pattern)使用多个简单的对象一步一步构建一个复杂的对象。一个 Builder 类会一步一步构造最终的对象,该 Builder 类独立于其他对象。建造者模式主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法...

weixin_29964507的博客 223
上一篇: Factory Method 工厂模式
下一篇: Prototype 原型模式
zigzagsoft
博客等级 码龄19年 34粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值