DesignPatternsPHP/FactoryMethod/ItalianFactory.php

27 lines
568 B
PHP
Raw Normal View History

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
}