summaryrefslogtreecommitdiff
path: root/diagrams/assignment_3/mmd/factory_pattern.mmd
diff options
context:
space:
mode:
Diffstat (limited to 'diagrams/assignment_3/mmd/factory_pattern.mmd')
-rw-r--r--diagrams/assignment_3/mmd/factory_pattern.mmd57
1 files changed, 57 insertions, 0 deletions
diff --git a/diagrams/assignment_3/mmd/factory_pattern.mmd b/diagrams/assignment_3/mmd/factory_pattern.mmd
new file mode 100644
index 0000000..78a04d4
--- /dev/null
+++ b/diagrams/assignment_3/mmd/factory_pattern.mmd
@@ -0,0 +1,57 @@
+classDiagram
+ class IEntityFactory~T~ {
+ <<interface>>
+ +CreateEntity(id, type, x, y, movement, feeding) T
+ +CreateMovementStrategy(movementType) IMovementStrategy
+ +CreateFeedingStrategy(behavior) IFeedingStrategy
+ }
+
+ class MorgFactory {
+ +CreateEntity(...) Morg
+ +CreateMovementStrategy(...) IMovementStrategy
+ +CreateFeedingStrategy(...) IFeedingStrategy
+ -ParsePreyTypes(feedingParts) List~string~
+ }
+
+ class Entity {
+ <<abstract>>
+ }
+
+ class Morg {
+ }
+
+ class IMovementStrategy {
+ <<interface>>
+ }
+
+ class MovementStrategyPaddles {
+ }
+
+ class MovementStrategyOozes {
+ }
+
+ class IFeedingStrategy {
+ <<interface>>
+ }
+
+ class FeedingStrategyAbsorbs {
+ }
+
+ class FeedingStrategyEnvelops {
+ }
+
+ IEntityFactory~T~ <|.. MorgFactory : implements
+ MorgFactory ..> Morg : creates
+ MorgFactory ..> IMovementStrategy : creates
+ MorgFactory ..> IFeedingStrategy : creates
+ Entity <|-- Morg
+ IMovementStrategy <|.. MovementStrategyPaddles
+ IMovementStrategy <|.. MovementStrategyOozes
+ IFeedingStrategy <|.. FeedingStrategyAbsorbs
+ IFeedingStrategy <|.. FeedingStrategyEnvelops
+ Morg --> IMovementStrategy
+ Morg --> IFeedingStrategy
+
+ note for MorgFactory "Creates Morg instances with
+configured strategies and prey types
+from file input"