Skip to content

Files

Latest commit

b8aa050 · Sep 27, 2023

History

History
This branch is up to date with DesignPatternsPHP/DesignPatternsPHP:main.

Flyweight

README.rst

Purpose

To minimise memory usage, a Flyweight shares as much as possible memory with similar objects. It is needed when a large amount of objects is used that don't differ much in state. A common practice is to hold state in external data structures and pass them to the flyweight object when needed.

UML Diagram

Alt Flyweight UML Diagram

Code

You can also find this code on GitHub

Text.php

.. literalinclude:: Text.php
   :language: php
   :linenos:

Word.php

.. literalinclude:: Word.php
   :language: php
   :linenos:

Character.php

.. literalinclude:: Character.php
   :language: php
   :linenos:

TextFactory.php

.. literalinclude:: TextFactory.php
   :language: php
   :linenos:

Test

Tests/FlyweightTest.php

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