我有一個類,其中許多參數正按照新的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