常用的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(工厂)模式的主要内容,如果未能解决你的问题,请参考以下文章
Java设计模式之工厂模式(Factory模式)介绍(转载)