summaryrefslogtreecommitdiff
path: root/diagrams/assignment_3/mmd/framework_architecture.mmd
diff options
context:
space:
mode:
Diffstat (limited to 'diagrams/assignment_3/mmd/framework_architecture.mmd')
-rw-r--r--diagrams/assignment_3/mmd/framework_architecture.mmd52
1 files changed, 52 insertions, 0 deletions
diff --git a/diagrams/assignment_3/mmd/framework_architecture.mmd b/diagrams/assignment_3/mmd/framework_architecture.mmd
new file mode 100644
index 0000000..744f29f
--- /dev/null
+++ b/diagrams/assignment_3/mmd/framework_architecture.mmd
@@ -0,0 +1,52 @@
+graph TD
+ subgraph "Framework Layer"
+ A[Entity<br/>Abstract Base]
+ B[Simulator~T~<br/>Abstract with Template Method]
+ C[EntityReader~T~<br/>Abstract]
+ D[IEntityFactory~T~<br/>Interface]
+ E[IEntityIterator~T~<br/>Interface]
+ end
+
+ subgraph "Morg Specialisation"
+ F[Morg<br/>Inherits Entity]
+ G[Dish<br/>Inherits Simulator~Morg~]
+ H[MorgReader<br/>Inherits EntityReader~Morg~]
+ I[MorgFactory<br/>Implements IEntityFactory~Morg~]
+ end
+
+ subgraph "Strategy Pattern"
+ J[IMovementStrategy]
+ K[IFeedingStrategy]
+ L[MovementStrategyPaddles]
+ M[MovementStrategyOozes]
+ N[FeedingStrategyAbsorbs]
+ O[FeedingStrategyEnvelops]
+ end
+
+ subgraph "Decorator Pattern"
+ P[FileReader]
+ Q[CSVReader]
+ R[MorgReader]
+ end
+
+ A --> F
+ B --> G
+ C --> H
+ D --> I
+ E --> S[EntityIterator~T~]
+
+ F --> J
+ F --> K
+ J --> L
+ J --> M
+ K --> N
+ K --> O
+
+ P --> Q
+ Q --> R
+ R --> H
+
+ I --> F
+ I --> J
+ I --> K
+ \ No newline at end of file