我认为标题是自我描述的,但我会举一个例子来详细说明我的问题。我有一个DTO字段很少的CarDataTransferObj类(在我的例子中是一个类)。在另一个类(我们称之为类A)中,我需要多次创建该对象的新实例,但只更新一个字段(length我的示例中的字段)。GivenDTO在类中必须是不可变的A。由于类中有“许多”字段CarDataTransferObj,我考虑了以下方法(以避免在类中重复代码A):
@Builder
public class CarDataTransferObj {
private Integer id;
private String color;
private String manufacturer;
private String model;
private String uniqueIdNr;
private Integer nrOfDoors;
private EngineType engineType;
private Integer length;
private Integer safetyLevel;
public static CarDataTransferObj newInstanceWithUpdatedLength(final CarDataTransferObj car, final Integer newLength) {
return CarDataTransferObj.builder()
.id(car.getId())
.color(car.getColor())
.manufacturer(car.getManufacturer())
.model(car.getModel())
.uniqueIdNr(car.getUniqueIdNr())
.nrOfDoors(car.getNrOfDoors())
.engineType(car.getEngineType())
.length(newLength)
.safetyLevel(car.getSafetyLevel())
.build();
}
}
对我来说,这听起来像是对静态工厂方法的一点反模式使用。我不确定它是否可以接受,因此这个问题。
以所呈现的方式使用静态工厂方法是一种反模式,应该避免吗?
犯罪嫌疑人X
摇曳的蔷薇
温温酱
相关分类