Есть класс, который имеет в себе статический метод, которому на вход подается аргумент (в данном примере transportId), есть условный оператор, который возвращает исходя из айдишника нужный транспорт. Важно учесть, что возвращаемый объект при любом случае является наследником одного абстрактного класса (в данном случае AbstractTransport).
class TransportFactory
{
public static function createTransport($transportId)
{
switch ($transportId) {
case Transport::CARS:
return new Car();
break;
case Transport::PLANE:
return new Plane();
break;
case Transport::TRAIN:
return new Train();
break;
default:
throw new Exception("No active transport");
}
}
}
Почитав про паттерны, я не совсем понимаю, это фабричный метод, или же статической симпл фэктори? И кто сможет объяснить?)