2013-05-10 21:09:55 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace DesignPatterns\FactoryMethod;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ItalianFactory is vehicle factory in Italy
|
|
|
|
*/
|
|
|
|
class ItalianFactory extends FactoryMethod
|
|
|
|
{
|
|
|
|
/**
|
2013-09-11 16:35:18 +02:00
|
|
|
* {@inheritdoc}
|
2013-05-10 21:09:55 +02:00
|
|
|
*/
|
|
|
|
protected function createVehicle($type)
|
|
|
|
{
|
|
|
|
switch ($type) {
|
2013-09-11 16:35:18 +02:00
|
|
|
case parent::CHEAP:
|
2013-05-10 21:09:55 +02:00
|
|
|
return new Bicycle();
|
|
|
|
break;
|
2013-09-11 16:35:18 +02:00
|
|
|
case parent::FAST:
|
2013-05-10 21:09:55 +02:00
|
|
|
return new Ferrari();
|
|
|
|
break;
|
2013-09-12 11:46:14 +02:00
|
|
|
default:
|
2013-05-10 21:09:55 +02:00
|
|
|
throw new \InvalidArgumentException("$type is not a valid vehicle");
|
|
|
|
}
|
|
|
|
}
|
2013-09-11 16:35:18 +02:00
|
|
|
}
|