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

Posted dxtlearningblockchain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要多个参数输入时-----------------考虑使用变种的Builder模式相关的知识,希望对你有一定的参考价值。

业务需求:

创建一个不可变的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模式的主要内容,如果未能解决你的问题,请参考以下文章

作业三总结

python如何利用input函数输入多个参数?

如何设计具有多个输入参数的 RESTful URL

LoadRunner参数化

python获取外部传入多个参数

Lambda表达式