builder建造者模式

Builder模式用于处理具有多种可选属性的对象创建,通过限制某些属性为必须,其他属性可自由组合,避免构造函数的爆炸性增长。在信息录入程序中,如姓名和性别为必填,身份证号等为非必填,Builder模式能有效管理这种组合需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要使用builder模式

在实际开发中,在一个类中可能有很多的属性,但是这些属性不一定都是必须的,我们可能要设定其中一个或几个的组合为必须属性,其他为非必须属性.
必须属性是必须要赋值的;
而非必须属性可以选择赋值也可以选择不赋值;
如果使用构造方法,一个构造方法代表一种组合.
根据不同需求会有很多不同组合,就要写很多的构造方法
这时,我们就要用到builder模式

builder模式的作用

限定一个或几个属性为必须属性,其他为非必须属性,根据情况可以自由组合;

如:
要写一个信息录入的程序:
录入内容有: 姓名(name),年龄(age),性别(genden),身份证号(id)
要求:必须填写姓名和性别

Person类

public class Person{
	private String name;
	private String genden;
	private int age;
	private String id;
	public String setName(){
		return name;
	}
	public String setGenden(){
		return genden;
	}
	public int setAge(){
		return age;
	}
	public String setId(){
		return id;
	}
	public static class newBuilder(){
		private String name;
		private String genden;
		private int age;
		private String id;
		public newBuilder setAge(){
			this.age=age;
			return this;
		}
		public newBuilder setId(){
			this.id=id;
			return this;
		}
		public newBuilder(String name,String genden){
			this.name=name;
			this.genden=genden;
		}
		public Person build(){
			return new Person(this);
		}
	}
	public Person(newBuilder builder){
		this.name=builder.name;
		this.genden=builder.genden;
		this.id=builder.id;
		this.age=builder.id;
	}
}

TestCreateDemo类

public class TestCreateDemo{
	//强制要求输入姓名,性别
	Person p1=new Person.newBuilder("小王","男").build();
	//选择性添加年龄,身份证号
	Person p2=new Perosn.newBuilder("小李","女").setAge(20).setId("S001").build();		
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值