Junior — Middle
Фарқият байни инстансгирии мустақимии объект ва истифодаи шаблони Builder барои эҷод кардани он чист?
sobes.tech AI
Ҷавоб аз AI
Тўғридан-тўғри объектни яратиш конструкция чақириши орқали амалга оширилади, масалан, new ClassName(). Бу, зарурий барча параметрлар маълум бўлганда ва объект жуда мураккаб бўлмаган ҳолда, оддий ва тезкор усулдир.
Builder шаблони мураккаб объектларни, айниқса, уларнинг бир нечта параметри бўлганда, яратиш учун қўлланилади, айниқса улардан баъзилари мажбурий ёки стандарт қийматларга эга бўлса. Builder объектни босқичма-босқич конфигурация қилиш имконини беради, бу коднинг ўқилиши ва сақланишини яхшилайди.
Фарқлар:
- Тўғридан яратиш: тез, аммо кўп параметрли узун конструкторларга олиб келиши мумкин.
- Builder: кўпроқ мослашувчан, ўқилишни яхшилайди, кўплаб опционал параметрлар билан объектларни яратишни осонлаштиради.
Javaда Builder мисоли:
public class User {
private String name;
private int age;
private String address;
private User(UserBuilder builder) {
this.name = builder.name;
this.age = builder.age;
this.address = builder.address;
}
public static class UserBuilder {
private String name;
private int age;
private String address;
public UserBuilder setName(String name) {
this.name = name;
return this;
}
public UserBuilder setAge(int age) {
this.age = age;
return this;
}
public UserBuilder setAddress(String address) {
this.address = address;
return this;
}
public User build() {
return new User(this);
}
}
}
// Қўлланилиши:
User user = new User.UserBuilder()
.setName("Ivan")
.setAge(30)
.build();