Junior — Middle
Obyektin birbaşa yaradılması ilə onun yaradılması üçün Builder şablonunun istifadəsi arasında hansı fərqlər var?
sobes.tech Süni İntellekt
AI-dan cavab
Obyektin birbaşa yaradılması konstruktor çağırışı ilə həyata keçirilir, məsələn, new ClassName(). Bu, lazım olan bütün parametrlər məlum olduqda və obyekt çox mürəkkəb olmadıqda, sadə və sürətli üsuldur.
Builder nümunəsi mürəkkəb obyektlərin, xüsusən də bəzi parametrlərin könüllü və ya standart dəyərlərə malik olduğu zaman istifadə olunur. Builder obyektin mərhələli şəkildə konfiqurasiyasına imkan verir, bu da kodun oxunuşunu və saxlanmasını yaxşılaşdırır.
Fərqlər:
- Birbaşa yaradılma: sürətli, lakin çox parametrli uzun konstruktorlara səbəb ola bilər.
- Builder: daha çevik, oxunuşu yaxşılaşdırır, çoxsaylı könüllü parametrlərlə obyektlərin yaradılmasını asanlaşdırır.
Java-da Builder nümunəsi:
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);
}
}
}
// İstifadə:
User user = new User.UserBuilder()
.setName("Ivan")
.setAge(30)
.build();