Junior — Middle
Millised erinevused on objekti otse instantsi loomise ja selle loomiseks Builder mustri kasutamise vahel?
sobes.tech AI
Vastus AI-lt
Objekta tieša izveide notiek, izsaucot konstruktoru, piemēram, new ClassName(). Tas ir vienkāršs un ātrs veids, kā izveidot objektu, kad visi nepieciešamie parametri ir zināmi un objekts nav pārāk sarežģīts.
Builder šablons tiek izmantots, lai izveidotu sarežģītus objektus ar daudzām parametru opcijām, īpaši, ja daži no tiem ir obligāti vai tiem ir noklusējuma vērtības. Builder ļauj pakāpeniski konfigurēt objektu, uzlabojot koda lasāmību un uzturēšanu.
Atšķirības:
- Tieša izveide: ātra, bet var novest pie garām konstruktoru funkcijām ar daudz parametriem.
- Builder: elastīgāks, uzlabo lasāmību, atvieglo objektu izveidi ar daudzām opcijām.
Piemērs Builder Java:
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);
}
}
}
// Lietošana:
User user = new User.UserBuilder()
.setName("Ivan")
.setAge(30)
.build();