Factory es un patrón creacional que provee una interfaz para crear objetos en una superclase, y permite a las subclases decidir qué tipo de objetos crear.
class Vehiculo {
constructor(_name, _wheels) {
this._name = _name;
this._wheels = _wheels;
}
describir() {
return `El vehículo: ${this._name}, Tiene: ${this._wheels} ruedas`;
}
}
class Moto extends Vehiculo {
constructor() {
super("Moto", 2)
}
}
class Camion extends Vehiculo {
constructor() {
super("Camion", 6)
}
}
class Coche extends Vehiculo {
constructor() {
super("Coche", 4)
}
}
class VehiculoFactory {
createByWheels(numWheels) {
if (numWheels == 2) {
return new Moto();
}
if (numWheels == 4) {
return new Coche();
}
if (numWheels == 6) {
return new Camion();
}
}
}
const fabricar = new VehiculoFactory();
const moto = fabricar.createByWheels(2)
const coche = fabricar.createByWheels(4)
const camion = fabricar.createByWheels(6)
console.log(moto.describir())
console.log(coche.describir())
console.log(camion.describir())
Superclase común
Vehiculo
Subclases
Moto, Coche, Camión
Clase Factory
VehiculoFactory
Nota: Este es un ejemplo de uso del patrón Factory en Javascript