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