使用Builder模式创建复杂可选参数对象

本文探讨了在面对大量可选参数时,如何避免JavaBeans模式的繁琐和构造方法的臃肿。通过引入Builder模式,可以更优雅地创建复杂可选参数的对象。Builder模式通过一个内部静态类持有所有属性,并提供setter方法,最终通过build方法构建对象,提升了代码的可读性和维护性。
摘要由CSDN通过智能技术生成

在新建对象时,若需要对大量可选参数进行赋值,最常见的做法是JavaBeans模式,即调用一个无参构造方法创建对象,然后调用setter方法来设置每个必要的参数,以及每个相关的可选参数

这种模式需要的代码语句繁琐,而且这种做法阻止了把类做成不可变的可能(不可变的类没有set方法,且创建之后没有任何可以更改属性的方法)。更加简洁的一种方式是通过多个构造方法去新建对象。

但是这样,就会有多个不同的构造方法,当参数越来越多时,这种方式就会使类的结构变得臃肿,难以维护,在使用时也需要去逐个理解每种构造方法的参数意义

有没有一种更好的创建大量可选参数对象的方式?答案是Builder模式。

具体思路,在bean里面再建立一个私有静态类,拥有bean的所有的属性,
然后里面有所有属性的set方法,并返回this 这个静态类对象本身。
最后有一个build方法,这里调用bean的私有构造方法,将私有静态类对象的this传进去,最后一一赋值。

使用的时候,就

  ReceiveListQueryDTO receiveListQueryDTO=new ReceiveListQueryDTO.Builder()
                    .isAll(Boolean.TRUE)
                    .itemCode("asdasd")
                    .page(1)
                    .pageSize(123)
                    .build();

这样使用 ,灵活了很多。

package com.souche.sfs.server.mo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值