From 182a4ff899efc98ecae92d8c5e736547a06e0a40 Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Mon, 25 May 2015 19:15:17 +0300 Subject: [PATCH] Added class diagram. --- .../etc/dependency-injection.png | Bin 0 -> 22493 bytes .../etc/dependency-injection.ucls | 141 ++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 dependency-injection/etc/dependency-injection.png create mode 100644 dependency-injection/etc/dependency-injection.ucls diff --git a/dependency-injection/etc/dependency-injection.png b/dependency-injection/etc/dependency-injection.png new file mode 100644 index 0000000000000000000000000000000000000000..2a92c9eb228b3155c1599308668e94ecbb32d7f1 GIT binary patch literal 22493 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file