Sobes.tech
Junior — Middle

Puteți descrie principiul de funcționare și caracteristicile principale ale pattern-ului Builder?

sobes.tech AI

Răspuns de la AI

Modelul Builder este utilizat pentru crearea pas cu pas a obiectelor complexe cu mulți parametri, mai ales atunci când constructorul cu mulți argumente nu este convenabil.

Ideea principală:

  • Se creează o clasă separată (Builder) care conține metode pentru setarea parametrilor obiectului.
  • Fiecare metodă returnează chiar Builder-ul, ceea ce permite lanțuirea apelurilor.
  • La final, se apelează metoda build(), care creează și returnează obiectul final.

Avantaje:

  • Îmbunătățește lizibilitatea codului la crearea obiectelor.
  • Permite crearea de obiecte imutabile cu configurații diferite.
  • Elimină necesitatea de a avea multiple constructori.

Exemplu în Java:

public class User {
    private final String name;
    private final int age;

    private User(Builder builder) {
        this.name = builder.name;
        this.age = builder.age;
    }

    public static class Builder {
        private String name;
        private int age;

        public Builder setName(String name) {
            this.name = name;
            return this;
        }

        public Builder setAge(int age) {
            this.age = age;
            return this;
        }

        public User build() {
            return new User(this);
        }
    }
}

// Utilizare:
User user = new User.Builder()
                .setName("Иван")
                .setAge(30)
                .build();

Astfel, Builder simplifică crearea obiectelor cu mulți parametri și crește lizibilitatea codului.