使用场景

建造者模式,英文名Builder Pattern

该模式使用一个单独的类,来封装对象的构建过程

适用场景:

对象构建或初始化工作特别麻烦,让用户手动去构建或初始化很容易出错,或者要调用特别多的函数

建造者模式和工厂模式的区别

单从功能上来说,建造者模式和工厂模式的功能很像

但如果大家两种模式都使用过,就会发现区别还是特别大的,很容易区分

工厂模式侧重于集中生产产品对象,是对多种产品的一种集中管理,产品对象的创建工作往往很简单

建造者模式则是侧重于构建单个对象,使用这个模式,往往是由于单个对象的构建工作十分繁琐

实现代码

public class Product {Long productId;String productName;String productModel;public static class Builder {Long productId;String productName;String productModel;public Builder name(String name) {productName = name;return this;}public Builder model(String model) {productModel = model;return this;}//构造前需要对参数进行检查//参数检查成功后,再动态分配产品id,顺序不能反,否则会浪费id资源public Product build() {if (!checkProductName())return null;if (!checkProductModel())return null;generateProductId();Product product = new Product();product.productId = productId;product.productName = productName;product.productModel = productModel;return product;}//检查产品名称是否合法protected boolean checkProductName() {return true;}//检查产品型号是否存在protected boolean checkProductModel() {return true;}//为产品分配idprotected void generateProductId() {}}}
public static void main(String[] args) {Builder builder = new Builder();Product product = builder.name("DJX无人机").model("DJX-x24").build();System.out.println(product.productId);}

【设计模式】【07】建造者模式相关推荐

  1. java设计模式之建造者模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  2. 建造者模式java_java设计模式3——建造者模式

    java设计模式3--建造者模式 1.建造者模式介绍: 建造者模式属于创建型模式,他提供了一种创建对象得最佳方式 定义: 将一个复杂对象的构建和与它的表示分离,使得同样的构建过程可以创建不同的表示 主 ...

  3. Java设计模式(建造者模式-适配器模式-桥接模式)

    Java设计模式Ⅲ 1.建造者模式 1.1 建造者模式概述 1.2 建造者模式的注意事项和细节 1.3 代码理解 2.适配器模式 2.1 类适配器模式 2.1.1 代码理解 2.2 对象适配器模式 2 ...

  4. 折腾Java设计模式之建造者模式

    博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...

  5. java设计模式 建造模式_理解java设计模式之建造者模式

    理解java设计模式之建造者模式 发布于 2020-12-10| 复制链接 摘记: 建造者模式(Builder Pattern)主要用于"分步骤构建一个复杂的对象",在这其中&qu ...

  6. 建造者模式 php,PHP设计模式之建造者模式定义与用法简单示例

    本文实例讲述了PHP设计模式之建造者模式.分享给大家供大家参考,具体如下: 建造者模式: 将复杂对象的创建过程和表示进行分离(好吧,我也看不懂什么意思1). 来点我人类能听懂的话: 1.在客户端看来需 ...

  7. C#设计模式之四建造者模式(Builder Pattern)【创建型】

    一.引言 今天我们要讲讲Builder模式,也就是建造者模式,当然也有叫生成器模式的,英文名称是Builder Pattern.在现实生活中,我们经常会遇到一些构成比较复杂的物品,比如:电脑,它就是一 ...

  8. 学习《图说设计模式》建造者模式

    图说设计模式之建造者模式 1. 模式动机 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮.方向盘.发送机等各种部件.而对于大多数用户而言,无须知道这 ...

  9. 实践GoF的23种设计模式:建造者模式

    本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:建造者模式>,作者: 元闰子. 简述 在程序设计中,我们会经常遇到一些复杂的对象,其中有很多成员属性,甚至嵌套着多个复杂的对象 ...

  10. python设计模式之建造者模式

    python设计模式之建造者模式 ​ 建造者模式的适用范围:想要创建一个由多个部分组成的对象,而且它的构成需要一步接一步的完成.只有当各个部分都完成了,这个对象才完整.建造者模式表现为复杂对象的创建与 ...

最新文章

  1. 如何让敏捷中的每日站会发挥最大效果?
  2. Windows Phone 7 自定义控件库
  3. Linux下的buffer与cache
  4. 阿呆做网站(3)--建数据库
  5. 魔法函数%matplotlib 解决matplotlib画图在Jupter/IPython中不显示
  6. 测试MongoDB的自动分片
  7. sqlserve 热备用状态更新_燃气地暖一个月费用多少钱?看完收藏备用
  8. 创建自己的github_创建自己的GitHub(kinda)
  9. html css基础页面,一、必知HTML基础
  10. 最大流最小割算法入门理解
  11. 虚拟机xp系统如何安装--win10专业版
  12. 讲解HTML和CSS(超详细)
  13. 4. (5.22~6.8)2022年自动化保研信息+分析汇总(夏令营)
  14. autojs之获取ip(内网ip和公网ip)
  15. 深交所股票交易接口的概述
  16. 外包公司到底能不能选择
  17. DUTOJ-1205: 对圣杯宝具的威力值
  18. 穿越功耗墙,从哪些方面提升性能?
  19. docker logs 查看docker容器日志详解
  20. iOS设置icon图标和启动页的详细设置

热门文章

  1. 又一世界级人工智能大会即将开幕!
  2. 2021年顺义区支持企业智能转型升级项目申报条件及要求,补贴1000万
  3. 企业数字化的4个痛点,低代码平台这样解决
  4. Latex中大括号内换行显示
  5. 2022年,继续奋斗。
  6. dfmea文件_DFMEA(潜在设计方案失效模式及后果分析)
  7. 【结构体Struct——简单使用】
  8. pyhton中正则表达式
  9. 分页-如何实现分页-实用有简单的分页代码及步骤分享
  10. 【举例说明】 利用cmd代码将图片png格式转为图片eps格式