常用的JavaScript设计模式Factory(工厂)模式

Posted dzwonline

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的JavaScript设计模式Factory(工厂)模式相关的知识,希望对你有一定的参考价值。

Factory通过提供一个通用的接口来创建对象,同时,我们还可以指定我们想要创建的对象实例的类型。

假设现在有一个汽车工厂VehicleFactory,支持创建Car和Truck类型的对象实例,现在需要通过这个工厂创建指定类型的对象,那么我们不需要通过直接使用new运算符或者通过其他的创造型构造函数来创建这个指定的对象,我们只需要通知VehicleFactory我们需要什么类型的对象实例,然后VehicleFactory会返回我们所需要的类型的对象实例。

代码实现:

//Car和Trunk的构造函数
function Car(options){
    this.doors=options.doors||4;
    this.state=options.state||"brand new";
    this.color=options.color||"black";
}
function Trunk(options){
    this.wheelSize=options.wheelSize||‘large‘;
    this.color=options.color||"yellow";
    this.state=options.state||"brand new";
}
//定义VehicleFactory工厂
function VehicleFactory(){}
//定义工厂创建实例的方法
VehicleFactory.prototype.createVehicle=function (options){
    switch(options.vehicleType)
    {
        case "car":this.vehicleClass=Car;break;
        case "trunk":this.vehicleClass=Trunk;break;
    }
    return new this.vehicleClass(options);
};

//创建生成汽车的工厂实例
let carFactory=new VehicleFactory();
let car1=carFactory.createVehicle({
                vehicleType:"car",
                color:"white",
                doors:6});
console.log(car1);//{doors:6,state:"brand new",color:"white"}

 

以上是关于常用的JavaScript设计模式Factory(工厂)模式的主要内容,如果未能解决你的问题,请参考以下文章

javaScript设计模式---(工厂模式学习)

工厂模式(Factory Pattern)

工厂模式(Factory Pattern)

Java设计模式之工厂模式(Factory模式)介绍(转载)

菜鸟理解的工厂模式(Factory Pattern)是什么样子的?

设计模式工厂模式(Factory Pattern)