From 3c67d5af7041d1715f7b7d1fa6ca38b29d797544 Mon Sep 17 00:00:00 2001 From: "nikita.strelkov" Date: Thu, 1 Sep 2016 15:39:42 +0500 Subject: [PATCH] Generate UML diagram for Flyweight --- Structural/Flyweight/uml/Flyweight.uml | 27 ++ Structural/Flyweight/uml/uml.png | Bin 0 -> 18579 bytes Structural/Flyweight/uml/uml.svg | 466 +++++++++++++++++++++++++ 3 files changed, 493 insertions(+) create mode 100644 Structural/Flyweight/uml/Flyweight.uml create mode 100644 Structural/Flyweight/uml/uml.png create mode 100644 Structural/Flyweight/uml/uml.svg diff --git a/Structural/Flyweight/uml/Flyweight.uml b/Structural/Flyweight/uml/Flyweight.uml new file mode 100644 index 0000000..5d53b0f --- /dev/null +++ b/Structural/Flyweight/uml/Flyweight.uml @@ -0,0 +1,27 @@ + + + PHP + \DesignPatterns\Structural\Flyweight\FlyweightFactory + + \DesignPatterns\Structural\Flyweight\CharacterFlyweight + \DesignPatterns\Structural\Flyweight\FlyweightFactory + \DesignPatterns\Structural\Flyweight\FlyweightInterface + + + + + + + + + + + + Fields + Constants + Constructors + Methods + + private + + diff --git a/Structural/Flyweight/uml/uml.png b/Structural/Flyweight/uml/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..1209ab4a7a0f39de72b855d584175675b2cdfbe5 GIT binary patch literal 18579 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + + + + + + + + + + + + + __construct(name) + + + + + + + + + + + + + draw(font) + + + + + + + + + + + + + CharacterFlyweight + + + CharacterFlyweight + + + + + + + + + + + + + + + + name + + + + + + + + + + + + + __construct(name) + + + + + + + + + + + + + draw(font) + + + + + + + + + + + + + CharacterFlyweight + + + CharacterFlyweight + + + + + + + + + + + + + + + + + + + pool + + + + + + + + + + + + + __get(name) + + + + + + + + + + totalNumber() + + + + + + + + + + + + + FlyweightFactory + + + FlyweightFactory + + + + + + + + + + + + + + + + pool + + + + + + + + + + + + + __get(name) + + + + + + + + + + totalNumber() + + + + + + + + + + + + + FlyweightFactory + + + FlyweightFactory + + + + + + + + + + + + + + + + + + + draw(extrinsicState) + + + + + + + + + + + + + FlyweightInterface + + + FlyweightInterface + + + + + + + + + + + + + + + + draw(extrinsicState) + + + + + + + + + + + + + FlyweightInterface + + + FlyweightInterface + + + + + + + + +