Effective Java第二条:遇到多个构造器参数时要考虑用构建器

本文介绍了在面对类中存在大量可选参数的情况下,如何选择合适的构造方法。对比了重叠构造器模式、JavaBean模式和构建器模式,并详细展示了构建器模式的实现方式,通过实例代码演示了客户端如何使用构建器模式。

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

1, 对于一个类具有很多可选参数时,我们考虑使用:a,重叠构造器(telescoping constructor),bJavaBean模式。C,构建器即Builder模式

2, 重叠构造器模式下,第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个构造器有两个,以此类推。

3, Javabean模式提供了set方法来设置值。但是其有可能出于不一致状态,所以我们必须保证其线程安全。

4, 构建起模式(builder

public class Builderpattern{ private final int a; private final int b; private final int c; private final int d; private final int e; private final int f; public static class Builder{ private final int a; private final int b; private final int c=0; private final int d=0; private final int e=0; private final int f=0; public Builder(int a,int b){ this.a=a; this.b=b; } public Builder c(int val) {c=val; return this;} public Builder d(int val) {d=val;return this;} public Builder e(int val) {e=val;return this;} public Builder f(int val) {f=val;return this;} public Builderpattern build(){ return new Builderpattern(this); } } Private Builderpattern(Builder builder){ a=builder.a; b=builder.b; c=builder.c; d=builder.d; e=builder.e; f=builder.f; } } 客户端代码 Builderpattern cc=new Builderpattern.Builder(240,8).c(100).d(35).e(45).builder();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值