工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程,考虑到在 ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口对象的细节,如下面的例子所示。
function createPerson(name, age, job) {
let o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function() {
console.log(this.name);
};
return o;
}
let person1 = createPerson('Nicholas', 29, 'software Enginner');
let person2 = createPerson('Greg', 27, 'Doctor');
函数 createPerson() 能够根据接收的参数来建设一种包含所有必要信息的Person对象。可以无数次地调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象。
工厂模式虽然解决了创建多个相识对象的问题,但却没有解决对象识别的问题 。
接下来我们继续介绍新的设计模式。