开放的编程资料库

当前位置:我爱分享网 > JavaScript教程 > 正文

JavaScript Builder pattern tutorial

JavaScript Builder 模式教程展示了如何使用 Builder 模式在 JavaScript 中创建对象。

建造者模式

建造者模式是一种为创建对象提供灵活解决方案的设计模式。构建器模式将复杂对象的构造与其表示分开。

构建器模式通过提供逐步的方法使用简单的对象构建复杂的对象。属于创作模式。

建造者模式示例

以下示例使用带TaskBuilder 的构建器模式。

let Task = function(name, description, finished, dueDate) {

    this.name = name;
    this.description = description;
    this.finished = finished;
    this.dueDate = dueDate;
}

let TaskBuilder = function () {

    let name;
    let description;
    let isFinished = false;
    let dueDate;

    return {
        setName: function (name) {
            this.name = name;
            return this;
        },
        setDescription: function (description) {
            this.description = description;
            return this;
        },
        setFinished: function (finished) {
            this.finished = finished;
            return this;
        },
        setDueDate: function (dueDate) {
            this.dueDate = dueDate;
            return this;
        },
        build: function () {
            return new Task(name, description, isFinished, dueDate);
        }
    };
};

let task = new TaskBuilder().setName('Task A').setDescription('finish book')
    .setDueDate(new Date(2019, 5, 12));
console.log(task);

在这个例子中,我们有一个生成TaskBuilder对象的Task

let Task = function(name, description, finished, dueDate) {

    this.name = name;
    this.description = description;
    this.finished = finished;
    this.dueDate = dueDate;
}

这是一个Task对象。它有四个属性:namedescriptionfinisheddueDate

return {
    setName: function (name) {
        this.name = name;
        return this;
    },
...    

TaskBuilder 返回设置四个属性的函数。请注意,每个函数都返回this,即对当前对象的引用。这样我们就可以链接函数调用。函数调用链被称为流畅的 API

let task = new TaskBuilder().setName('Task A').setDescription('finish book')
    .setDueDate(new Date(2019, 5, 12));
console.log(task);

我们使用TaskBuilder 创建一个任务。

在本文中,我们介绍了 JavaScript 中的构建器模式。

列出所有 JavaScript 教程。

未经允许不得转载:我爱分享网 » JavaScript Builder pattern tutorial

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏