Я недавно узнал об этом шаблоне и попытался внедрить его в свой проект.Он делает то, что предполагает.Тем не менее, попытался найти хорошее решение, чтобы обновить его.Придумал одно решение, и я хотел бы знать, является ли оно «приемлемым».
Единственное отличие, которое я сделал, - я создал еще один конструктор внутри класса Builder, который принимает вызывающий объект в качестве параметра:
public Builder (User user) {
this.userID = user.getUserID();
this.userName = user.getUserName();
...
//and so on
и в основном методе
создание объекта:
User user = new User.Builder("mandatory params")
.email("some email")
.build();
и обновление:
user = new User.Builder(user).phoneNumber("my number").build();
Является ли этот подход приемлемым?