Junior — Middle
Quali sono le differenze tra istanziare un oggetto direttamente e utilizzare il pattern Builder per crearlo?
sobes.tech AI
Risposta dell'AI
L'istanza di un oggetto avviene direttamente chiamando il costruttore, ad esempio new ClassName(). Questo è un metodo semplice e rapido per creare un oggetto quando tutti i parametri necessari sono noti e l'oggetto non è troppo complesso.
Il pattern Builder viene utilizzato per creare oggetti complessi con molti parametri, specialmente se alcuni di essi sono opzionali o hanno valori predefiniti. Builder consente di configurare l'oggetto passo dopo passo, migliorando la leggibilità e la manutenibilità del codice.
Differenze:
- Creazione diretta: veloce, ma può portare a costruttori lunghi con molti parametri.
- Builder: più flessibile, migliora la leggibilità, facilita la creazione di oggetti con molti parametri opzionali.
Esempio di Builder in 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);
}
}
}
// Uso:
User user = new User.UserBuilder()
.setName("Ivan")
.setAge(30)
.build();