美文网首页
(2)JavaScript简单工厂模式二

(2)JavaScript简单工厂模式二

作者: jaimor | 来源:发表于2019-04-18 11:11 被阅读0次

上一篇文章说到了简单工厂模式,这种模式常规情况下是比较实用的,没有多大问题。但是某些情况下就会出现代码不好维护的问题。

比如说有一个工厂是组装汽车的,这个工厂又比较大,什么汽车都组装,那么就需要创建很多中汽车类,比如:

function Nissan() {
  this.color = 'white';
  this.price = 12345;
}
function Volkswagen() {
  this.color = 'black';
  this.price = 11115;
}
function Tesla() {
  this.color = 'green';
  this.price = 12215;
}
//...
//问题出现了:有多少中车就需要创建多少个类在全局window中,这样会严重污染全局环境。
//而且当某人新建了一个同名变量或者类,那就更加悲剧,直接覆盖之前的代码……

所以这里应该需要重新改变其工厂编写代码的模式,暂且命名为 组合工厂模式 吧。

var CarFactory = function (type) {
  if (this.constructor === CarFactory) {    //这里的目的是,判断当前是否为 new 的对象,如果使用的是new,那么这里就为true
    return new this[type];  
  } else {      //否则就是直接当作函数调用,那么做一个兼容。当使用函数调用的时候,我们在内部new一个对象
    return new CarFactory(type);
  }
}
CarFactory.prototype = {
  Nissan: function () {
    //...
  },
  Volkswagen: function () {},
  Tesla: function () {}
  //...
}

这样在全局中只暴露一个CarFactory这样一个方法或者类,减少了污染全局环境的情况,以后的新增也很方便,使用和之前也一样。

var nissan = new CarFactory('Nissan');  // var nissan = CarFactory('Nissan');

相关文章

  • (2)JavaScript简单工厂模式二

    上一篇文章说到了简单工厂模式,这种模式常规情况下是比较实用的,没有多大问题。但是某些情况下就会出现代码不好维护的问...

  • iOS知识点整理

    一、工厂模式 1、简介 2、简单工厂模式 2、抽象工厂模式 二、Swift与Objective_C

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 设计模式-工厂模式

    一、工厂模式分类 简单工厂模式 工厂方法模式 抽象工厂模式 二、简单工厂模式 简单工厂就是讲需要new对象的那段代...

  • 设计模式 工厂模式

    工厂模式 工厂模式三大类1、简单工厂模式(静态工厂方法模式)2、工厂方法模式3、抽象工厂模式(Kit模式) 简单工...

  • 简单工厂模式

    一、前言 工厂模式是个比较复杂的模式,大体上分为三类:1、简单工厂模式;2、工厂方法模式;3、抽象工厂模式; 二、...

  • php设计模式之工厂模式

    1. 工厂模式分类 工厂模式具体可分为三类模式:简单工厂模式,工厂方法模式,抽象工厂模式; 2. 简单工厂模式 又...

  • 工厂模式

    3.工厂模式 按照业务场景划分:一、简单工厂模式,二、工厂方法模式,三、抽象工厂模式。 3.1 简单工厂模式 即静...

  • 设计模式-工厂模式

    1、简单工厂模式 2、工厂方法模式 3、抽象工厂模式

  • 工厂方法模式

    1.简单工厂模式 先看一下简单工厂模式 代码: 2.工厂方法模式 简单工厂模式大家比较熟悉也比较简单,但是简单工厂...

网友评论

      本文标题:(2)JavaScript简单工厂模式二

      本文链接:https://www.haomeiwen.com/subject/fjtzwqtx.html