工厂模式:
工厂模式是一种广为人知的设计模式,这种模式抽象了创建对象的具体
过程,另外ECMAScript中无法创建类,所以可以使用函数来封装以特定
的接口创建细节,如下例1所示:
例1:
function createPerson(name,age,job){
var o=new Object();
o.name=name;
o.age=age;
o.job=job;
o.sayName=function(){
alert(this.name);
};
return o;
}
var person1=createPerson("Nicholas",29,"Software Engineer");
var person2=createPerson("Greg",27,"Doctor");
alert(person1); //值为:Object
alert(person2); //值为:Object
例1中的函数createPerson( )能够根据接收的参数来创建一个包含所有必要信
息的对象,可以无数次的调用这个函数,它都会返回包含三个属性和一个方法的对象。
虽然工厂模式可以创建多个相似对象,但没有解决对象识别的问题(返回的都是Object
类型)。