工厂模式

虽然Object构造函数和对象字面量都可以创建单个对象,但这个方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量重复代码。

优点

用函数封装以特定接口创建对象的细节,使用一个接口,能同时创建多个相似对象

示例

var createPerson = function(name, age) {
  var obj = new Object();

  obj.name = name;
  obj.age = age;
  obj.sayName = function() {
    return this.name;
  };

  return obj;
};

var person1 = createPerson('duke', 22);
var person2 = createPerson('dome', 24);
var person3 = new createPerson('dome3', 24);
console.log('person1=>', person1);
console.log('person2=>', person2);
console.log('person3=>', person3);

缺点

虽然解决了创建多个相似对象的问题,但无法解决对象识别的问题,即无法知道具体对象的类型

你可能感兴趣的:(工厂模式)