我有一个可变对象,如下所示:
class CarsRequest {
String name
String models
int engine
def getRequestParams() {
[
name : this.name,
models : this.models,
engine : this.engine,
]
}
}
所以,我想知道为可变对象实现Groovy构建器的最佳方法是什么?
我已经建立了以下构建器。我的构造函数有问题。
@Override
public String toString() {
return "CarsRequest: "+this.name+", "+this.models+", "+this.engine;
}
如果我不提供例如模型,则为空。
如何根据我的需要解决构造器构造的问题,即一旦我想提供名称和模型,而在其他时候提供名称和引擎?
我的示例:
public class CarsRequest {
String name
String models
int engine
private CarsRequest(CarsRequestBuilder builder) {
this.name = builder.name;
this.models = builder.models;
this.engine = builder.engine;
}
String getName() {
return name
}
String getModels() {
return models
}
int getEngine() {
return engine
}
@Override
public String toString() {
return "CarsRequest: "+this.name+", "+this.models+", "+this.engine;
}
public static class CarsRequestBuilder {
private String name
private String models
private int engine
public CarsRequestBuilder name(String name) {
this.name = name;
return this;
}
public CarsRequestBuilder models(String models) {
this.models = models;
return this;
}
public CarsRequestBuilder engine(int engine) {
this.engine = engine;
return this;
}
public CarsRequest build() {
CarsRequest carsRequest = new CarsRequest(this);
validateCarsRequestObject(carsRequest);
return carsRequest;
}
private void validateCarsRequestObject(CarsRequest carsRequest) {
}
}
}