graph TD
subgraph "Framework Layer"
A[Entity
Abstract Base]
B[Simulator~T~
Abstract with Template Method]
C[EntityReader~T~
Abstract]
D[IEntityFactory~T~
Interface]
E[IEntityIterator~T~
Interface]
end
subgraph "Morg Specialisation"
F[Morg
Inherits Entity]
G[Dish
Inherits Simulator~Morg~]
H[MorgReader
Inherits EntityReader~Morg~]
I[MorgFactory
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