Java中 实体类.builder()和 new 实体类再通过set赋值,有何区别,优劣?
在Java中,有两种常用的创建对象的方式:通过构造函数(使用new关键字)和通过builder模式(调用类名.builder()方法)。两种方式都可以创建对象并设置属性值。下面是它们的区别、优劣:
new关键字的方式
创建对象时,使用new关键字,将会直接调用默认构造函数,然后通过set方法来设置每个属性的值。这种方式可以看作是直接设置每个属性,适用于属性少的场景。
优点:直接,易于理解、操作。
缺点:在属性较多时,需要手动输入每个属性的值,代码冗余;而且当实体类中的属性有变化时,需要修改已有的所有代码。
builder模式
builder模式在创建对象时会先创建builder对象,然后使用链式调用来设置对象属性,最后通过builder.build()方法返回创建好的对象。这种方式可以看作是将多个属性的设置统一到一个可见的地方,适用于属性较多甚至相当多的场景。
优点:通过builder模式,可以一次性设置多个属性,减少代码量。可以避免实体类的属性增减对代码的影响,方便维护和升级。
缺点:使用builder模式在代码量较少时,代码实在太多,不如new方式简洁流畅;编写builder类有一定的工作量和时间成本。
综合比较,我们可以得出结论:在属性较少的场景下,使用new方式更加直接简单,而在属性较多、相当多的场景下,使用builder模式能够统一管理多个属性的赋值,更适合且优点更突出。