From 3a35fa7ef6175ce880d79fbc4d09476cca9f5154 Mon Sep 17 00:00:00 2001 From: John Webb Date: Thu, 31 Jul 2014 13:35:10 -0500 Subject: [PATCH] Updated UML diagrams --- Structural/Adapter/uml/uml.png | Bin 13396 -> 13648 bytes Structural/Adapter/uml/uml.svg | 142 +++++----- Structural/Bridge/uml/uml.png | Bin 15981 -> 16163 bytes Structural/Bridge/uml/uml.svg | 288 +++++++++---------- Structural/Composite/uml/uml.png | Bin 8172 -> 7981 bytes Structural/Composite/uml/uml.svg | 140 +++++---- Structural/DataMapper/uml/uml.png | Bin 10553 -> 10473 bytes Structural/DataMapper/uml/uml.svg | 12 +- Structural/Decorator/uml/uml.png | Bin 11534 -> 11342 bytes Structural/Decorator/uml/uml.svg | 313 +++++++++++---------- Structural/DependencyInjection/uml/uml.png | Bin 12816 -> 12709 bytes Structural/DependencyInjection/uml/uml.svg | 239 ++++++++-------- Structural/Facade/uml/uml.png | Bin 8579 -> 8371 bytes Structural/Facade/uml/uml.svg | 295 +++++++++---------- Structural/FluentInterface/uml/uml.png | Bin 4974 -> 4910 bytes Structural/FluentInterface/uml/uml.svg | 12 +- 16 files changed, 695 insertions(+), 746 deletions(-) diff --git a/Structural/Adapter/uml/uml.png b/Structural/Adapter/uml/uml.png index b653077f56c497e8c68baae5957bbb4db5c49f6b..2cf82a19dc52a0222761e29395a738e129fb13ad 100644 GIT binary patch literal 13648 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 literal 13396 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 diff --git a/Structural/Adapter/uml/uml.svg b/Structural/Adapter/uml/uml.svg index 189c56f..4eec346 100644 --- a/Structural/Adapter/uml/uml.svg +++ b/Structural/Adapter/uml/uml.svg @@ -1,4 +1,4 @@ - + @@ -24,25 +24,25 @@ - + - + - + - + - + - + - + @@ -51,22 +51,22 @@ - + - + - + - + - + @@ -114,86 +114,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -203,7 +203,7 @@ open() - + @@ -213,11 +213,11 @@ turnPage() - + - - + + @@ -300,16 +300,16 @@ EBookAdapter - + - + - + - + @@ -319,7 +319,7 @@ pressNext() - + @@ -329,11 +329,11 @@ pressStart() - + - - + + @@ -345,16 +345,16 @@ Kindle - + - + - + - + @@ -364,7 +364,7 @@ pressNext() - + @@ -374,11 +374,11 @@ pressStart() - + - - + + @@ -390,16 +390,16 @@ EBookInterface - + - + - + - + @@ -409,7 +409,7 @@ turnPage() - + @@ -419,11 +419,11 @@ open() - + - - + + @@ -435,14 +435,14 @@ PaperBookInterface - + - - - - - + + + + + diff --git a/Structural/Bridge/uml/uml.png b/Structural/Bridge/uml/uml.png index 30f78d1e36dfc437b9811d847a6a323d9c6cc3a0..df6ce3c32fe9a9a284c5122596bfaf1389ee9da9 100644 GIT binary patch literal 16163 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 ZqL8~Tl$_PiR?&bzX>kRyyl1by{}27wzE}VN diff --git a/Structural/Bridge/uml/uml.svg b/Structural/Bridge/uml/uml.svg index 8d27913..189a7dc 100644 --- a/Structural/Bridge/uml/uml.svg +++ b/Structural/Bridge/uml/uml.svg @@ -1,4 +1,4 @@ - + @@ -28,22 +28,22 @@ - + - + - + - + - + - + @@ -52,64 +52,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -157,294 +157,294 @@ - - + + - - + + - - + + - - + + - - + + - + work() - - + + - - - + + + - + - + Workshop - + Workshop - - + + - - + + - - + + - - + + - + __construct(workShop1, workShop2) - - + + - - + + - + manufacture() - - + + - - - + + + - + - + Car - + Car - - + + - - + + - - + + - - + + - + work() - - + + - - - + + + - + - + Produce - + Produce - - + + - - + + - - + + - - + + - + __construct(workShop1, workShop2) - - + + - - + + - + manufacture() - - + + - - - + + + - + - + Motorcycle - + Motorcycle - - + + - - + + - - + + - - + + - + work() - - + + - - - + + + - + - + Assemble - + Assemble - + - + - + - + - + workShop1 - + - + workShop2 - + - + - + __construct(workShop1, workShop2) - + - + - + manufacture() - + - + - + - + Vehicle - + Vehicle - + - + - + - + diff --git a/Structural/Composite/uml/uml.png b/Structural/Composite/uml/uml.png index 70162dca7c04fc31ec7c6e762102fabc2b7c7083..5fed73d4e595ddcd095154dc335e3b035a1e3f59 100644 GIT binary patch literal 7981 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 literal 8172 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 diff --git a/Structural/Composite/uml/uml.svg b/Structural/Composite/uml/uml.svg index 1f2196c..c587818 100644 --- a/Structural/Composite/uml/uml.svg +++ b/Structural/Composite/uml/uml.svg @@ -1,4 +1,4 @@ - + @@ -20,22 +20,22 @@ - + - + - + - + - + - + @@ -44,22 +44,22 @@ - + - + - + - + - + - + @@ -102,124 +102,114 @@ - + - - + + - - + + - - + + - - + + - + render(indent) - - + + - - - + + + - + - + TextElement - + TextElement - - + + - - + + - - + + - - + + - + render(indent) - - + + - - - + + + - + - + FormElement - + FormElement - - - - - - - - - + + - - + + - - + + - - + + - - - - + render(indent) - - + + - - - + + + - + - + InputElement - + InputElement diff --git a/Structural/DataMapper/uml/uml.png b/Structural/DataMapper/uml/uml.png index 05b5812b79e38f7f5aa708300b2b72db40f0a544..97cd26a7bdc56c8c30a426b1945a9f393a9b2c45 100644 GIT binary patch literal 10473 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 literal 10553 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 ZkQpzRny^!K;FHL6igIeQ#nPt!{|~^_s6qe$ diff --git a/Structural/DataMapper/uml/uml.svg b/Structural/DataMapper/uml/uml.svg index dcc452b..d65a9c9 100644 --- a/Structural/DataMapper/uml/uml.svg +++ b/Structural/DataMapper/uml/uml.svg @@ -177,17 +177,7 @@ - - - - - - - - - - - + diff --git a/Structural/Decorator/uml/uml.png b/Structural/Decorator/uml/uml.png index 1194a629a24d9570569fe7bf72537e6e37d17c9a..dc4fae373b40036fbe2a1ea3efb55ccc69ed8183 100644 GIT binary patch literal 11342 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 TOz8x^6GnkbDN2@!8wLI!G=&$o literal 11534 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 + @@ -24,22 +24,22 @@ - + - + - + - + - + - + @@ -48,19 +48,19 @@ - + - + - + - + - + @@ -87,276 +87,287 @@ - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - + renderData() - - + + - - - + + + - + - + RenderInJson - + RenderInJson - - - - - - - - - + + - - + + - - + + - - + + - - - - + renderData() - - + + - - - + + + - + - + RenderInXml - + RenderInXml - + - + - + - + - + data - + - + - - - - - - __construct(data) + + + + + + __construct(data) - + - + - + renderData() - - + + - - - + + + - - + + - - Webservice + + Webservice - - Webservice + + Webservice - - + + - - + + - - + + - + - - - - - - wrapped + + + + + + wrapped - + - + - - - - - - __construct(wrappable) + + + + + + __construct(wrappable) - - + + - - - + + + - - + + - - Decorator + + Decorator - - Decorator + + Decorator - - + + - - + + - - + + - - + + - + renderData() - - + + - - - + + + - - + + - - RendererInterface + + RendererInterface - - RendererInterface + + RendererInterface - + - + diff --git a/Structural/DependencyInjection/uml/uml.png b/Structural/DependencyInjection/uml/uml.png index 91cdcb005896fb3c71858211a920f6739d6bd7ab..67e6ca16a3e83f345366009fa3fd92289f879f46 100644 GIT binary patch literal 12709 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 D`FXOY literal 12816 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 ZZdYCC$f|!e@K28i((e`CLBtF`|1SkbDcb-5 diff --git a/Structural/DependencyInjection/uml/uml.svg b/Structural/DependencyInjection/uml/uml.svg index 2f75b09..78d603d 100644 --- a/Structural/DependencyInjection/uml/uml.svg +++ b/Structural/DependencyInjection/uml/uml.svg @@ -1,4 +1,4 @@ - + @@ -20,13 +20,13 @@ - + - + - + @@ -86,70 +86,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -176,254 +176,247 @@ - + - + + + + - - + + - + - + - + - + - + configuration - + - + host - + - + - + __construct(config) - + - + - + connect() - + - + getHost() - + - + - + - + Connection - + Connection - - + + - - + + - - + + - - + + - + get(key, default) - - + + - + set(key, value) - - + + - - - + + + - + - + ArrayConfig - + ArrayConfig - - + + - - + + - - + + - - + + - + get(key) - - + + - + set(key, value) - - + + - - - + + + - + - + Parameters - + Parameters - - - - - - - - - - - + - + - + - + - + storage - + - + - - - - - - __construct(storage) + + + + + + __construct(storage) - - + + - - - + + + - - + + - - AbstractConfig + + AbstractConfig - - AbstractConfig + + AbstractConfig - + - + diff --git a/Structural/Facade/uml/uml.png b/Structural/Facade/uml/uml.png index e13cbdc6f9b960753f42eeefff14e6f636e70d91..da5097a0b68fbafa013429026a8db23d22bb6c84 100644 GIT binary patch literal 8371 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 Y1hjIyLta7nGr}b$IaS$WY2$$Z0lF;R)Bpeg literal 8579 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 A+W-In diff --git a/Structural/Facade/uml/uml.svg b/Structural/Facade/uml/uml.svg index 8f7dd83..2e7b400 100644 --- a/Structural/Facade/uml/uml.svg +++ b/Structural/Facade/uml/uml.svg @@ -1,4 +1,4 @@ - + @@ -16,25 +16,25 @@ - + - + - + - + - + - + - + @@ -43,307 +43,282 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - - - - + - + - - - - - - - - - - - + + - - - - - - - - - + + - - + + - - + + - - + + - - - - + execute() - - + + - + waitForKeyPress() - - + + - + launch(os) - - + + - + powerDown() - - + + - - - + + + - + - + BiosInterface - + BiosInterface - - + + - - + + - - + + - - + + - + halt() - - + + - - - + + + - - + + - - OsInterface + + OsInterface - - OsInterface + + OsInterface - - + + - - + + - - + + - - + + - + os - - + + - - - - - - bios + + + + + + bios - - + + - - + + - - - - - - __construct(bios, os) + + + + + + __construct(bios, os) - - + + - - + + - + + + + + + turnOn() + + + + + - - turnOn() + + turnOff() - - + + - - - - - - turnOff() + + + - - + + - - - + + Facade - - - - - Facade - - - Facade + + Facade diff --git a/Structural/FluentInterface/uml/uml.png b/Structural/FluentInterface/uml/uml.png index e8229a22150baacaed2ed162235723a948f94d7b..e49aa571f359ff9fd4d5214ece823a30e660121a 100644 GIT binary patch literal 4910 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 GD(GL1Pk9^w diff --git a/Structural/FluentInterface/uml/uml.svg b/Structural/FluentInterface/uml/uml.svg index a836466..60a8564 100644 --- a/Structural/FluentInterface/uml/uml.svg +++ b/Structural/FluentInterface/uml/uml.svg @@ -89,17 +89,7 @@ - - - - - - - - - - - +