Ejercicio: Ejercicio 2
Implementar una fábrica de vehículos que permita crear autos, motos y camiones (patrón Factory Method).Solución:
<?php
interface Vehicle {
public function drive();
}
class Car implements Vehicle {
public function drive() {
echo "Conduciendo auto";
}
}
class Truck implements Vehicle {
public function drive() {
echo "Conduciendo camión";
}
}
abstract class VehicleFactory {
abstract public function createVehicle();
public function startDelivery() {
$vehicle = $this->createVehicle();
$vehicle->drive();
}
}
class CarFactory extends VehicleFactory {
public function createVehicle() {
return new Car();
}
}
class TruckFactory extends VehicleFactory {
public function createVehicle() {
return new Truck();
}
}
$carFactory = new CarFactory();
$carFactory->startDelivery(); // Conduciendo auto
$truckFactory = new TruckFactory();
$truckFactory->startDelivery(); // Conduciendo camión