Vorüberlegungen zum Faktor Zeit
Zunächst ist zu klären, wie und wo der Faktor Zeit in das Modell und
Programm kommt. Auch hier sind verschiedene Varianten denkbar.
A)
Die Batterie erhält einen Zeitgeber (kurz Timer), der die Spannung intern
in festgelegten kurzen Zeitintervallen endlos wiederholend reduziert. Nachteil:
Die Batterie entlädt sich unabhängig davon, ob Strom entnommen wird. Setzt
man die Entnahme zu hoch an, kann die Batterie leer sein, bevor man die
Taschenlampe zum ersten Mal eingeschaltet hat.
Sinnvoller ist es wohl, die kontinuierliche
Stromentnahme dann immer starten zu lassen, wenn die Taschenlampe
eingeschaltet wird. Eingeschaltet? Der Schalter könnte defekt sein, ebenso
die Lampe!
Also sollte die Batteriespannung nur dann sinken, wenn die Lampe
tatsächlich leuchtet.
B)
Der Ort, an dem alle elektrischen Funktionen zusammenlaufen ist das
komplette System Taschenlampe, abgebildet in der Klasse TTaschenlampe.
Wenn der Timer dort angesiedelt wird und z. B. in der Methode
'Leuchtet' aktiv wird, hätten wir eine gute Lösung.
Ein gibt jedoch einen ernst zu nehmenden Einwand: Ein
Timer ist eine technische Komponente des Betriebssystem und nicht ein
originäres Bestandteil einer Taschenlampe. Deshalb gehört er in einem sauberen
Entwurf eigentlich nicht zu den Fachklassen.
Sehen wir uns eine dritte Variante an.
C)
Der Timer ist Teil der GUI und damit vom Delphi-System optimal
integriert.
Es ist abzuwägen, welcher Entwurf das Modell besser
repräsentiert.
Entwurf A
Kommt logisch nicht in Frage.
Entwurf B
Vorteil: Das Modell verhält sich so richtig und unabhängig vom Vorhandensein der GUI-Klasse.
Nachteil: unsauberer Entwurf
Entwurf C
Vorteil: Klare Trennung von GUI und reinem Fachkonzept.
Nachteil: Der zeitgesteuerte Verbrauch ist von der GUI-Klasse abhängig und
das Modell selbst simuliert den Ereignisfaktor Zeit nicht.
Entscheidungen dieser Art sind häufig zu treffen. Es sollte immer dem
sauberen Entwurf der Vorzug gegeben werden. Wollte man z. B. statt des
Bildschirms zur Anzeige eine reale Glühbirne ansteuern, dann müßte der
Timer im Datenmodell angesiedelt sein. Da dieses Programm für die Simulation auf dem
Bildschirm entwickelt wird, ist die Entscheidung für C angemessen.
Wir
realisieren also die Variante C.
Merke:
Entscheidendes Kriterium für die Richtigkeit eines Entwurfs ist, was in der
Anforderungsdefinition festgelegt ist.
|
|