В чем преимущество добавления статического метода builder() в шаблон Builder?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 В чем преимущество добавления статического метода builder() в шаблон Builder?

Сообщение Anonymous »

Мне интересно, ошибочна ли моя реализация шаблона Builder.

Предположим, у нас есть класс User, для которого мы хотим иметь Builder моя реализация будет такой:

Код: Выделить всё

public class User
{
private final String name;
private final int age;

private User(Builder builder)
{
this.name = builder.name;
this.age = builder.age;
}

public static class Builder
{
//blah blah

public User build()
{
return new User(this);
}
}
}
Но время от времени я вижу, что некоторые люди добавляют этот метод:

Код: Выделить всё

public static Builder builder()
{
return new Builder();
}
по-видимому, просто по какой-либо причине, кроме достижения немного более читаемого синтаксиса:

Код: Выделить всё

//Before
User user = new User.Builder()
.named("Tester")
.build();

//After
User user = User.builder()
.named("Tester")
.build();
Это единственное преимущество? Я что-то пропустил?

Подробнее здесь: https://stackoverflow.com/questions/787 ... lder-patte
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»