mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-07-16 12:56:21 +02:00
23 lines
661 B
PHP
23 lines
661 B
PHP
<?php
|
|
|
|
namespace DesignPatterns\Creational\FactoryMethod;
|
|
|
|
class GermanFactory extends FactoryMethod
|
|
{
|
|
protected function createVehicle(string $type): VehicleInterface
|
|
{
|
|
switch ($type) {
|
|
case parent::CHEAP:
|
|
return new Bicycle();
|
|
case parent::FAST:
|
|
$carMercedes = new CarMercedes();
|
|
// we can specialize the way we want some concrete Vehicle since we know the class
|
|
$carMercedes->addAMGTuning();
|
|
|
|
return $carMercedes;
|
|
default:
|
|
throw new \InvalidArgumentException("$type is not a valid vehicle");
|
|
}
|
|
}
|
|
}
|