/ Published in: JavaScript
                    
                                        
The Factory Pattern suggests defining an interface for creating an object where you allow the subclasses to decide which class to instantiate. This pattern handles the problem by defining a completely separate method for the creation of objects and which sub-classes are able to override so they can specify the ‘type’ of factory product that will be created.
                
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
function VehicleFactory() {}
VehicleFactory.prototype.vehicleClass = Car;
VehicleFactory.prototype.getVehicle = function (options) {
return new this.vehicleClass(options);
};
var carFactory = new VehicleFactory();
var car = carFactory.getVehicle({ color: "yellow", turbo: true });
console.log(car instanceof Car); // => true
// approach #1: Modify a VehicleFactory instance to use the Truck class
carFactory.vehicleClass = Truck;
var mover = carFactory.getVehicle({ enclosedCargo: true, length: 26 });
counsole.log(mover instanceof Truck); // => true
// approach #2: Subclass VehicleFactory to create a factory class that
// builds Trucks
function TruckFactory () {}
TruckFactory.prototype = new VehicleFactory();
TruckFactory.prototype.vehicleClass = Truck;
var truckFactory = new TruckFactory();
var bigfoot = truckFactory.getVehicle({ monster: true, cylinders: 12 });
console.log(bigfoot instanceof Truck); // => true
Comments
 Subscribe to comments
                    Subscribe to comments
                
                