- Events
Es ist eine schnell laufende Uhr (FastClock) zu realisieren, die von beliebig vielen Anzeigen (DigitalClock) "beobachtet" wird:
FastClock ist dabei in der Logikschicht derart zu verwalten, dass sowohl der Faktor, um den die Uhr schneller läuft, als auch Startdatum und Startzeit einstellbar sind. Über das Event OneMinuteIsOver werden alle angemeldeten Views (Observer) verständigt, sobald sich die Minute verändert hat. Die Uhr kann bei Bedarf auch angehalten werden (Property IsRunning in Klasse FastClock, bzw Checkbox Running in GUI zum Setzen der Property).
- Realisierung als Zweischichtanwendung mit GUI und Logik.
- Für den Timer im Logikprojekt die Klasse
DispatcherTimerverwenden. Siehe dazu die die Microsoft Dokumentation. - Das Timerintervall des
DispatcherTimer-Objekts ist so einzustellen, dass es auslöst, wenn für dieFastClockeine Minute vergangen ist (dann kann in derFastClockeinfach eine Minute dazugezählt werden)- Das kürzeste mögliche Intervall ist 1 (1 ms == 1 Minute), das längste Intervall lässt die Uhr in Normalgeschwindigkeit laufen (
Beschleunigungsfaktorvon 1). EinBeschleunigungsfaktorvon 2 würde die Noralzeit doppelt so schnell laufen lassen. Dh. eine Minute würde in derFastClocknur eine halbe Minute (30 Sekunden) "dauern".
- Das kürzeste mögliche Intervall ist 1 (1 ms == 1 Minute), das längste Intervall lässt die Uhr in Normalgeschwindigkeit laufen (
- Die
FastClockist alsSingleton(Dokumentation) zu implementieren, damit alle Beobachter die selbe Uhrzeit haben.
Als Basis für den Event soll ein generischer EventHandler<DateTime> verwendet werden.
- Spezialisten erzeugen eine Analoguhr als alternativen Observer.

