... | ... | @@ -87,7 +87,10 @@ SimulationTracker*->"many" TrackerCreator : static creator map |
|
|
ConcreteTrackerCreatorA-->ConcreteTrackerA : create
|
|
|
ConcreteTrackerCreatorB-->ConcreteTrackerB : create
|
|
|
```
|
|
|
The simulation runtime diagram:
|
|
|
|
|
|
Here is how the simulation triggers the trackers. We have 3 concrete trackers declared, and the compound tracker will systematically propagate the triggers on all its trackers. Since concrete trackers are typically specialized, some of the triggers will translate in *no op*.
|
|
|
|
|
|
We only illustrate 3 trigger for sake of concision.
|
|
|
|
|
|
```plantuml
|
|
|
participant simulation
|
... | ... | @@ -113,7 +116,7 @@ activate simulation |
|
|
activate compoundTracker
|
|
|
compoundTracker -> trackerA : planetsChanged
|
|
|
compoundTracker -> trackerB : planetsChanged
|
|
|
compoundTracker -> trackerB : planetsChanged
|
|
|
compoundTracker -> trackerC : planetsChanged
|
|
|
trackerC -> screen : print planet position\nvelocity and mass
|
|
|
deactivate compoundTracker
|
|
|
deactivate simulation
|
... | ... | |