Java 解决构造方法参数过多-builder模式(effect java 学习笔记2)

本文探讨了当Java类的构造方法参数过多时的解决方案,对比了可伸缩构造方法、JavaBean模式与Builder模式。Builder模式提供了一种安全、可读性高的替代方案,尤其适用于参数众多且部分可选的情况。总结指出,当参数数量超过几个时,Builder模式是较好的选择。
摘要由CSDN通过智能技术生成

一、前景:

一般情况我们不会遇到这样的情况,使用静态工厂方法,或者构造方法就足够。但是它们也有一个限制就是,它们不能很好的扩展到很多可选参数的场景。随着我们业务的深入,某些java bean
中的参数将会越来越多,我们添加的构造方法也相应的增加。想想一个10个参数的构造方法,我胃痛。

既然想要用builder模式,我们首先需要知道传统方法的不足。


二、可伸缩构造方法 VS builder模式

我们都用代码实例来说话

1、可伸缩构造方法

public class Student {
    private final String name; // required
    private final String sex;  // required
    private final int weight;  // optional
    private final int height;  // optional 
    private final int age;     // optional

    public Student(String name, String sex) {
        this(name, sex, 0);
    }
    
    public Student(String name, String sex, int w) {
        this(name, sex, w, 0);
    }
    
    public Student(String name, String sex, int w, int h) {
        this(name, sex, w, h, 0);
    }

    public Student(String name, String sex, int w, int h, int a) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值