码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-02-02 20:00:16      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:person   方法   build   使用   构造   image   strong   www   构造方法   

业务需求:

创建一个不可变的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模式

标签:person   方法   build   使用   构造   image   strong   www   构造方法   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!