mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-02-24 09:42:24 +01:00
39 lines
786 B
PHP
39 lines
786 B
PHP
<?php
|
|
|
|
/*
|
|
* DesignPatternPHP
|
|
*/
|
|
|
|
namespace DesignPatterns\FactoryMethod;
|
|
|
|
/**
|
|
* GermanFactory is vehicle factory in Germany
|
|
*/
|
|
class GermanFactory extends FactoryMethod
|
|
{
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
protected function createVehicle($type)
|
|
{
|
|
switch ($type) {
|
|
|
|
case parent::CHEAP :
|
|
return new Bicycle();
|
|
break;
|
|
|
|
case parent::FAST :
|
|
$obj = new Porsche();
|
|
// we can specialize the way we want some concrete Vehicle since
|
|
// we know the class
|
|
$obj->addTuningAMG();
|
|
return $obj;
|
|
break;
|
|
|
|
default :
|
|
throw new \InvalidArgumentException("$type is not a valid vehicle");
|
|
}
|
|
}
|
|
|
|
} |