Skip to content

Latest commit

 

History

History
69 lines (46 loc) · 1.14 KB

File metadata and controls

69 lines (46 loc) · 1.14 KB

Simple Factory

Purpose

SimpleFactory is a simple factory pattern.

It differs from the static factory because it is NOT static and as you know: static => global => evil!

Therefore, you can have multiple factories, differently parametrized, you can subclass it and you can mock-up it.

UML Diagram

Alt SimpleFactory UML Diagram

Code

You can also find these code on GitHub

SimpleFactory.php

.. literalinclude:: SimpleFactory.php
   :language: php
   :linenos:

VehicleInterface.php

.. literalinclude:: VehicleInterface.php
   :language: php
   :linenos:

Bicycle.php

.. literalinclude:: Bicycle.php
   :language: php
   :linenos:

Scooter.php

.. literalinclude:: Scooter.php
   :language: php
   :linenos:

Usage

$factory = new SimpleFactory();
$bicycle = $factory->createVehicle('bicycle');
$bicycle->driveTo('Paris');

Test

Tests/SimpleFactoryTest.php

.. literalinclude:: Tests/SimpleFactoryTest.php
   :language: php
   :linenos: