跳转至

JavaScript 构建器模式教程

原文: http://zetcode.com/javascript/builderpattern/

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

构建器模式

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

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

构建器模式示例

以下示例将构建器模式与TaskBuilder结合使用。

task_creator.js

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 教程


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组