我有一个类,其中许多参数正按照新的api集成进行添加。在java对象中有构造函数更改时的最佳实践
例如,早些时候,我曾与4个参数的类:
Integer a;
String b;
Map<String, String> c;
List<Integer> e.
这样的构造是:
public SampleClass(Integer a,
String b,
Map<String, String> c,
List<Integer> e)
{
this.a = a;
this.b = b;
this.c = c;
this.e = e;
}
几个队都在他们的代码中使用此构造我的API集成。 过了一段时间,这个类中增加了一个新参数。即
Double d;
所以我增加了一个新的构造:
public SampleClass(Integer a,
String b,
Map<String, String> c,
List<Integer> e,
Double d)
{
this.a = a;
this.b = b;
this.c = c;
this.e = e;
this.d = d;
}
而且标志着我以前的构造函数弃用。我没有删除以前的构造函数,因为如果删除了,客户机的代码就会中断。
随着新参数的增加,我现在有5个参数的构造函数。
是否存在关于如何构建器应该被弃用/移除的最佳做法,以避免发生这种类型的场景?
不确定这是否是一个好主意,但您可以尝试使用[Lombok](https://projectlombok.org/features/Builder.html)构建器模式。唯一的问题(我不知道这是否是你的答案)是Lombok依赖于这种实例是以这种方式创建的:'Type.builder.param1(valueParam1).others(valueOthers)。(...).. 。(...)。build',这是你以前的客户没有的东西。但是,如果你与他们谈判,他们不能这样做吗?我的意思是龙目岛给你一个自我管理的构造函数,它独立于params的顺序并且独立于数字。 –
使用'builder Pattern'并在当前类中使用'overloading' for构造器 – Hosseini
可能重复的[为方法传递许多参数的最佳实践?](http://stackoverflow.com/questions/2432443/best-practice-for-传递许多参数到方法) – Joe