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
对象。它有四个属性:name
、description
、finished
和dueDate
。
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 教程。