Junior — Middle
88
Объектілерді құру үшін Builder үлгісін қолдану принципін түсіндіріңіз.
AI-дан жауап
sobes.tech AI
Паттерн Builder используется для поэтапного создания сложных объектов. Он позволяет отделить процесс конструирования объекта от его представления, благодаря чему один и тот же процесс может создавать разные представления.
Основная идея:
- Создается класс Builder с методами для установки различных параметров объекта.
- Каждый метод возвращает самого Builder, что позволяет вызывать методы цепочкой (fluent interface).
- В конце вызывается метод build(), который возвращает готовый объект.
Это удобно, когда у объекта много параметров, и не хочется создавать конструкторы с большим количеством аргументов или множество перегруженных конструкторов.
Пример на Java:
public class User {
private final String firstName;
private final String lastName;
private final int age;
private final String phone;
private final String address;
private User(UserBuilder builder) {
this.firstName = builder.firstName;
this.lastName = builder.lastName;
this.age = builder.age;
this.phone = builder.phone;
this.address = builder.address;
}
public static class UserBuilder {
private String firstName;
private String lastName;
private int age;
private String phone;
private String address;
public UserBuilder setFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public UserBuilder setLastName(String lastName) {
this.lastName = lastName;
return this;
}
public UserBuilder setAge(int age) {
this.age = age;
return this;
}
public UserBuilder setPhone(String phone) {
this.phone = phone;
return this;
}
public UserBuilder setAddress(String address) {
this.address = address;
return this;
}
public User build() {
return new User(this);
}
}
}
// Использование:
User user = new User.UserBuilder()
.setFirstName("Иван")
.setLastName("Иванов")
.setAge(30)
.setPhone("123456789")
.setAddress("ул. Пушкина, д.10")
.build();