mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-01-18 05:58:16 +01:00
Static Factory ============== Purpose ------- Similar to the AbstractFactory, this pattern is used to create series of related or dependent objects. The difference between this and the abstract factory pattern is that the static factory pattern uses just one static method to create all types of objects it can create. It is usually named ``factory`` or ``build``. Examples -------- - Zend Framework: ``Zend_Cache_Backend`` or ``_Frontend`` use a factory method create cache backends or frontends UML Diagram ----------- .. image:: uml/uml.png :alt: Alt StaticFactory UML Diagram :align: center Code ---- You can also find this code on `GitHub`_ StaticFactory.php .. literalinclude:: StaticFactory.php :language: php :linenos: FormatterInterface.php .. literalinclude:: FormatterInterface.php :language: php :linenos: FormatString.php .. literalinclude:: FormatString.php :language: php :linenos: FormatNumber.php .. literalinclude:: FormatNumber.php :language: php :linenos: Test ---- Tests/StaticFactoryTest.php .. literalinclude:: Tests/StaticFactoryTest.php :language: php :linenos: .. _`GitHub`: https://github.com/domnikl/DesignPatternsPHP/tree/master/Creational/StaticFactory