JS工厂模式

86 阅读2分钟

###工厂模式 工厂模式是一种常用的设计模式,它可以根据不同的参数创建出不同的对象。在JS中,工厂模式通常被用于抽象对象的创建过程,从而将对象的创建和具体的业务逻辑分离开来,提高代码的可读性和可维护性。

实际上,在JavaScript中创建一个工厂也非常简单,我们只需定义一个函数来接收不同的参数,并返回相应的对象即可。下面我们将通过一个例子来说明它的应用:

例子:一个简单的产品工厂

应用示例

假设我们需要创建一个产品工厂,根据不同的产品类型创建不同的产品。我们可以使用工厂模式来创建这个产品工厂。

首先,我们需要定义一个工厂函数来接收不同的参数,并返回相应的产品对象:

const productFactory = function(type, options) {
  switch (type) {
    case 'computer':
      return new Computer(options);
    case 'phone':
      return new Phone(options);
    default:
      throw new Error('Invalid product type');
  }
};

在上面的代码中,我们定义了一个productFactory函数,它接收两个参数:type表示产品类型,options表示产品的配置参数。我们根据不同的产品类型来返回相应的产品对象,如果传入无效的type,则抛出一个错误提示。

接着,我们可以定义两个产品类ComputerPhone

class Computer {
  constructor(options) {
    this.type = 'Computer';
    this.brand = options.brand;
    this.cpu = options.cpu;
    this.memory = options.memory;
  }
}

class Phone {
  constructor(options) {
    this.type = 'Phone';
    this.brand = options.brand;
    this.os = options.os;
    this.battery = options.battery;
  }
}

在上面的代码中,我们定义了两个产品类ComputerPhone,它们都有不同的属性,并且接收一个options参数来初始化这些属性。

最后,我们可以通过以下方式来创建产品:

const computer = productFactory('computer', {
  brand: 'Dell',
  cpu: 'Intel i5',
  memory: '8G'
});

const phone = productFactory('phone', {
  brand: 'Apple',
  os: 'iOS',
  battery: '3000mAh'
});

通过上面的例子,我们可以看到工厂模式在JS中的应用非常广泛。它不仅可以被用于抽象对象的创建过程,还可以被用于创建单例、装饰器等高级设计模式。

总结

总之,工厂模式是一种非常实用的设计模式,它可以帮助我们更好地组织代码,提高代码的可读性和可维护性。在JS中,通过定义一个工厂函数来接收不同的参数,并返回相应的对象即可实现工厂