51 lines
898 B
ReStructuredText
Raw Normal View History

`Proxy`__
=========
2015-04-02 00:03:33 +02:00
Purpose
-------
To interface to anything that is expensive or impossible to duplicate.
Examples
--------
- Doctrine2 uses proxies to implement framework magic (e.g. lazy
initialization) in them, while the user still works with his own
entity classes and will never use nor touch the proxies
UML Diagram
-----------
.. image:: uml/uml.png
:alt: Alt Proxy UML Diagram
:align: center
Code
----
You can also find this code on `GitHub`_
2015-04-02 00:03:33 +02:00
2018-06-14 22:17:14 +02:00
BankAccount.php
2015-04-02 00:03:33 +02:00
2018-06-14 22:17:14 +02:00
.. literalinclude:: BankAccount.php
2015-04-02 00:03:33 +02:00
:language: php
:linenos:
2018-06-14 22:17:14 +02:00
HeavyBankAccount.php
2015-04-02 00:03:33 +02:00
2018-06-14 22:17:14 +02:00
.. literalinclude:: HeavyBankAccount.php
:language: php
:linenos:
BankAccountProxy.php
.. literalinclude:: BankAccountProxy.php
2015-04-02 00:03:33 +02:00
:language: php
:linenos:
Test
----
.. _`GitHub`: https://github.com/domnikl/DesignPatternsPHP/tree/master/Structural/Proxy
.. __: http://en.wikipedia.org/wiki/Proxy_pattern