首页 > 其他 > 详细

需要多个参数输入时-----------------考虑使用变种的Builder模式

时间:2020-02-02 19:53:30      阅读:61      评论:0      收藏:0      [点我收藏+]

业务需求:

创建一个不可变的Person对象,这个Person可以拥有以下几个属性:名字、性别、年龄、职业、车、鞋子、衣服、钱、房子。

要求:

其中名字和性别是必填项,而其他选填项可以根据情况自由输入。

具体实现:

1.为了保证对象的不可变,我们要将Person类中的每一个属性都声明为private final的。

技术分享图片

2.在Person类中定义一个内部类Builder。

(1)这个Builder内部类中的属性要和Person中的相同,并且必须有的属性(名字和性别)要用final修饰,防止这些属性没有被赋值。

(2)其中必填项使用Builder的构造方法接收值,选填项使用返回值为Builder的方法接收值。

技术分享图片

 (3)最后定义了一个build方法,将Builder对象传入Person的私有构造方法,最终返回一个Person对象。

技术分享图片

3.Person的私有构造方法的写法:不直接传入属性,而是传入一个Builder对象。

技术分享图片

方法调用:

必填项使用Builder构造方法传入,非必须的属性可以根据需要任意设置。

 技术分享图片

 转载于  Java 大白话讲解设计模式之 -- 建造者(Builder)模式

 

需要多个参数输入时-----------------考虑使用变种的Builder模式

原文:https://www.cnblogs.com/dxtlearningblockchain/p/12253235.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!