需要多个参数输入时-----------------考虑使用变种的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,Person,类中,输入,属性 来源: https://www.cnblogs.com/dxtlearningblockchain/p/12253235.html