创建者模式和工厂模式有点类似,不过关注点不同。工厂模式往往只关心你要的是什么,二不关心这个东西的具体细节是什么。而创建模式则关心的是这个东西的具体细节的创建。拿创建人物来说,我们关心的不仅是创建一个人物,还要关心他的性别,肤色和名字,则可以使用创建者模式:

package builder;/*** * DOC 种族角色* */
public class Race {private String name;// 名字private String skinColor;// 肤色private String sex;// 性别public String getName() {return this.name;}public void setName(String name) {this.name = name;}public String getSkinColor() {return this.skinColor;}public void setSkinColor(String skinColor) {this.skinColor = skinColor;}public String getSex() {return this.sex;}public void setSex(String sex) {this.sex = sex;}}
package builder;/*** * DOC 我们关心的不仅仅是创建一个人物,还要关心其特征的创建* */
public class RaceBuilder {private Race race;/*** DOC 创建一个种族* * @return*/public RaceBuilder builder() {this.race = new Race();return this;}/*** DOC 取名字* * @return*/public RaceBuilder setName(String name) {this.race.setName(name);return this;}/*** DOC 选择性别* * @return*/public RaceBuilder setSex(String sex) {this.race.setSex(sex);return this;}/*** DOC 选择肤色* * @return*/public RaceBuilder setSkinColor(String skinColor) {this.race.setSkinColor(skinColor);return this;}/*** * DOC 返回这个创建好的种族* * @return*/public Race create() {return this.race;}
}

测试类:

package builder;public class Main {public static void main(String[] args) {Race race = new RaceBuilder().builder().setName("张三").setSex("男").setSkinColor("白色").create();}}

java设计模式---构建者模式相关推荐

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

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

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

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

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

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

  4. Java设计模式之Builder模式

    Java设计模式之Builder模式 Java设计模式之Builder模式 简介 适用性 用LOL的出装备的顺序为例 基本实现代码 BasePerson的实现 DeMaXiYa的实现 QiTianDa ...

  5. Java 设计模式之Builder模式

    设计模式系列 创建型设计模式 Java 设计模式之单例模式 Java 设计模式之静态工厂方法模式 Java 设计模式之工厂方法模式 Java 设计模式之抽象工厂模式 Java 设计模式之Builder ...

  6. java 设计模式之解释器模式(十九)

    java 设计模式之解释器模式①⑨ 定义 角色分析 使用场景 代码实现 躁动的心灵,不安的灵魂.在彷徨中挣扎,在迷失中探索.时光飞逝,努力不变. 设计模式学习,近期我会把23种设计模式都写成博客,敬请 ...

  7. java设计模式之组合模式(树形层级)

    java设计模式之组合模式 学习难度:★★★☆☆,使用频率:★★★★☆]  树形结构在软件中随处可见,例如操作系统中的目录结构.应用软件中的菜单.办公系统中的公司组织结构等等,如何运用面向对象的方式来 ...

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

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

  9. JAVA设计模式之建造者模式

    转自 JAVA设计模式之建造者模式 建造者模式(Builder)的定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂对象的创建型 ...

最新文章

  1. AC日记——Red and Blue Balls codeforces 399b
  2. 大厂php怎么做前端,大厂前端经典面试问题精选(附答案)
  3. 个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客
  4. 计算机网络按信号频带占用方式分为,《计算机网络及组网技术》第2阶段测试题....
  5. 【深度学习】一文详解RNN及股票预测实战(Python)!
  6. Spring和SpringMVC的区别
  7. linux下使用VS CODE + CMAKE 调试C++程序
  8. 【机器学习】逻辑回归小结
  9. 枚举型是什么类型_金属缠绕垫片如何选用?A、B、C、D型都是什么类型?
  10. Ubuntu远程操作Linux服务器GUI程序
  11. 用Golang构建gRPC服务
  12. 复制网页中的表格格式后导入到excel、markdown、数据库、json中,并转换表格格式
  13. rem单位中html默认字号,轻松掌握CSS3中的字体大小单位rem的使用方法
  14. 发动机冒黑烟_挖掘机冒黑烟,是怎么回事?
  15. HDU 5863 cjj's string game ( 16年多校10 G 题、矩阵快速幂优化线性递推DP )
  16. 设置内核的运行环境之隔离的应用程序
  17. WidsMob ImageConvert for Mac(图片格式转换器)
  18. 不能创建对象qmdispatch_按键精灵更新时提示 ActiveX 部件不能创建对象 错误代码 800a01ad_电脑故障...
  19. LuoguP4568 分层图
  20. log4j2配置详解及自定义Appender

热门文章

  1. linux下短链接出现TIME_WAIT耗尽端口号的解决方法
  2. 一个通俗易懂的HMM例子
  3. 设置/修改centos上的swap交换分区的方法
  4. [LeetCode] Maximum Subarray
  5. android 牛人必修 ant 编译android工程
  6. 数据库-ADONET-使用强类型DataSet
  7. 【转载】Hadoop 2.7.3 和Hbase 1.2.4安装教程
  8. IDEA常用快捷键整理
  9. 利用samba和mount命令 进行文件共享
  10. 升级PHP到5.3.3的过程及注意事项