工厂模式

思想

将创建对象的工作推迟到子类(Factory)中去

和简单工厂模式的区别

之前的简单工厂,每增加一个类同时还要修改工厂函数,也就是修改两处。

function Factory(type, content) {
  if(this instanceof Factory) {   // 判断是否使用new关键字
     return new this[type](content);
  } else {
    return new Factory(type, content);
  }
}


Factory.prototype = {
  Java: function (content) {
    this.name = 'Java';
    this.content = content;
  },
  JavaScript: function (content) {
    this.name = 'JavaScript';
    this.content = content;
  },
  Python: function (content) {
    this.name = 'Python';
    this.content = content;
  }
}

var foo = new Factory('JavaScript', 'ECMA');
console.log(foo);

// [object Object] {
//   content: "ECMA",
//   name: "JavaScript"
// }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容