Wzorzec konstrukcyjny Builder w JavaScript

Builder jest to elastyczny wzorzec mający na celu budowanie skomplikowanych obiektów, krok po kroku co upraszcza cały proces. Wszelkie detale tworzenia obiektu są ukryte przed klientem. Poniżej przykład budowy zadania:

function TaskBuilder() {
    let name, description, isDone;
    return {
        setName: function(name) {
            this.name = name;
            return this;
        },
        setDescription: function(description) {
            this.description = description;
            return this;
        },
        setDone: function(done) {
            this.isDone = done;
            return this;
        },
        build: function () {
            return new Task(this.name, this.description, this.isDone);
        }
    }

Następnie tworzymy Task-a w następujący sposób:

let task = (new TaskBuilder()).setName("Zadanie 1")
.setDescription("opis").setDone(true).build();
console.log(task);
// {name: "Zadanie 1", description: "opis",
// isDone: true}
Scroll to Top