Sobes.tech
Junior — Middle

Quelles différences existent entre l'instanciation directe d'un objet et l'utilisation du modèle Builder pour sa création?

sobes.tech IA

Réponse de l'IA

L'instanciation d'un objet se fait directement via l'appel au constructeur, par exemple, new ClassName(). C'est une méthode simple et rapide pour créer un objet lorsque tous les paramètres nécessaires sont connus et que l'objet n'est pas trop complexe.

Le modèle Builder est utilisé pour créer des objets complexes avec de nombreux paramètres, surtout si certains d'entre eux sont optionnels ou ont des valeurs par défaut. Builder permet de configurer l'objet étape par étape, améliorant la lisibilité et la maintenabilité du code.

Différences :

  • Création directe : rapide, mais peut conduire à des constructeurs longs avec beaucoup de paramètres.
  • Builder : plus flexible, améliore la lisibilité, facilite la création d'objets avec plusieurs paramètres optionnels.

Exemple de Builder en 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);
        }
    }
}

// Utilisation :
User user = new User.UserBuilder()
                .setName("Ivan")
                .setAge(30)
                .build();