diff options
Diffstat (limited to 'diagrams/assignment_3/mmd/strategy_pattern.mmd')
| -rw-r--r-- | diagrams/assignment_3/mmd/strategy_pattern.mmd | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/diagrams/assignment_3/mmd/strategy_pattern.mmd b/diagrams/assignment_3/mmd/strategy_pattern.mmd new file mode 100644 index 0000000..7b6dfc8 --- /dev/null +++ b/diagrams/assignment_3/mmd/strategy_pattern.mmd @@ -0,0 +1,56 @@ +classDiagram + class Entity { + <<abstract>> + +IMovementStrategy MovementStrategy + +IFeedingStrategy FeedingStrategy + +Move() + +Feed() + } + + class Morg { + } + + class IMovementStrategy { + <<interface>> + +Move(entity: Entity, newLocation: (int, int)) + } + + class IFeedingStrategy { + <<interface>> + +Feed(predator: Entity, prey: Entity) + } + + class MovementStrategyPaddles { + +Move(...) + } + + class MovementStrategyOozes { + +Move(...) + } + + class FeedingStrategyAbsorbs { + +Feed(...) + } + + class FeedingStrategyEnvelops { + +Feed(...) + } + + class MorgFactory { + +CreateMovementStrategy(...) IMovementStrategy + +CreateFeedingStrategy(...) IFeedingStrategy + } + + Entity <|-- Morg + Entity --> IMovementStrategy : uses + Entity --> IFeedingStrategy : uses + IMovementStrategy <|.. MovementStrategyPaddles + IMovementStrategy <|.. MovementStrategyOozes + IFeedingStrategy <|.. FeedingStrategyAbsorbs + IFeedingStrategy <|.. FeedingStrategyEnvelops + MorgFactory ..> IMovementStrategy : creates + MorgFactory ..> IFeedingStrategy : creates + + note for Entity "Any combination of movement +and feeding behaviors +configured via Factory" |