diff options
Diffstat (limited to 'diagrams/assignment_3/mmd/factory_pattern.mmd')
| -rw-r--r-- | diagrams/assignment_3/mmd/factory_pattern.mmd | 57 |
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" |