From d0616c79375c9d4fb820204dfad58767d2a1a150 Mon Sep 17 00:00:00 2001 From: John Webb Date: Tue, 29 Jul 2014 11:17:21 -0500 Subject: [PATCH] Added Proxy UML --- Structural/Proxy/README.md | 4 ++++ Structural/Proxy/uml/uml.png | Bin 0 -> 10913 bytes Structural/Proxy/uml/uml.svg | 1 + Structural/Proxy/uml/uml.txt | 18 ++++++++++++++++++ 4 files changed, 23 insertions(+) create mode 100644 Structural/Proxy/uml/uml.png create mode 100644 Structural/Proxy/uml/uml.svg create mode 100644 Structural/Proxy/uml/uml.txt diff --git a/Structural/Proxy/README.md b/Structural/Proxy/README.md index 3ee37ef..b4c0e39 100644 --- a/Structural/Proxy/README.md +++ b/Structural/Proxy/README.md @@ -7,3 +7,7 @@ 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 + +![Alt Proxy UML Diagram](uml/uml.png) \ No newline at end of file diff --git a/Structural/Proxy/uml/uml.png b/Structural/Proxy/uml/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..2d7b804e049d69658d272f9a9141738daafb4bc2 GIT binary patch literal 10913 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 Md3CuO8S}9J0so;`4*&oF literal 0 HcmV?d00001 diff --git a/Structural/Proxy/uml/uml.svg b/Structural/Proxy/uml/uml.svg new file mode 100644 index 0000000..939c8e6 --- /dev/null +++ b/Structural/Proxy/uml/uml.svg @@ -0,0 +1 @@ +Record$data : array|null__construct($data = null)__set($name : string, $value : mixed)__get($name : string)RecordProxy$isDirty : bool$isInitialized : bool__construct(data : array)__set($name : string, $value : mixed) \ No newline at end of file diff --git a/Structural/Proxy/uml/uml.txt b/Structural/Proxy/uml/uml.txt new file mode 100644 index 0000000..22c5272 --- /dev/null +++ b/Structural/Proxy/uml/uml.txt @@ -0,0 +1,18 @@ +@startuml + +class Record { + #$data : array|null + +__construct($data = null) + +__set($name : string, $value : mixed) + +__get($name : string) +} + +class RecordProxy { + #$isDirty : bool + #$isInitialized : bool + +__construct(data : array) + +__set($name : string, $value : mixed) +} + +Record <|.. RecordProxy +@enduml \ No newline at end of file