summaryrefslogtreecommitdiff
path: root/diagrams/assignment_3/mmd/factory_pattern.mmd
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-11-20 21:39:18 -0800
committerFuwn <[email protected]>2025-11-20 21:53:25 -0800
commit5ccd4667082a7ba69b737d252e239c3ac77fe658 (patch)
treebbd4060335beb4332574993f499310b53ebed1d4 /diagrams/assignment_3/mmd/factory_pattern.mmd
parentfeat: Implement Assignment 3 functionality (diff)
downloadcst276-5ccd4667082a7ba69b737d252e239c3ac77fe658.tar.xz
cst276-5ccd4667082a7ba69b737d252e239c3ac77fe658.zip
feat: Add Assignment 3 diagram sources
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"