|
|
|
|
Die Einarbeitung in 'fremde' Frameworks gestaltet sich nicht immer
einfach. Diese Arbeit kann durch Beispiele, die die verschiedenenen
Aspekte des Frameworks beleuchten, erleichtert werden. Diesem Zweck
dient dieses 'Einführende Beispiel'. Grundlage für das
Verständnis dieses Kapitels ist der Technische
Überblick.
|
|
|
Zur Einarbeitung wird ein Videoautomat Schritt für Schritt mit
Hilfe des SalesPoint-Frameworks aufgebaut. Logisch
zusammenhängende Schritte werden zu einer 'Version'
zusammengefasst. Die erste Version dient
dabei als Basis. Jede darauffolgende Version basiert in der
Beschreibung auf dem Code der Vorhergehenden.
|
|
|
Hinweis: Trotz mehrmaligem Korrektur-Lesen läßt
es sich nicht vermeiden, daß die vorliegende Dokumentation des
Videoautomaten noch Rechtschreibfehler, sowie Fehler in Codeabschnitten
enthalten kann. Für Bug-Meldungen sind die Autoren dieser Seiten
dankbar. Die am Ende eines jeden Kapitels angebotenen Quelltexte sind
auf jeden Fall fehlerfrei und kompilierbar.
|
|
|
|
Die Videothek "HOMECINEMA" bietet mit
Hilfe eines Videoverleihautomaten einen vereinfachten
24-Stunden-Service an: Am Videoverleihautomaten erhalten registrierte,
erwachsene Kunden
Videobänder gegen Bezahlung des Verkaufspreises. Bei
Rückgabe von Bändern werden pro angefangene 24 Stunden
3,- DM von diesem Einsatz abgezogen und der Rest ausbezahlt. Bleibt
dabei kein positiver Rest, dann erhält der Kunde das Band; es
gilt als gekauft. Der Automat hat ein Sortiment von 10 Filmen, die in
je 5 Exemplaren vorhanden sind. Aus gesetzlichen Gründen werden
sämtliche Leihvorgänge mitprotokolliert. Der
Automatenbetreiber nutzt diese Informationen außerdem, um
amortisierte Bänder (30 Mal ausgeliehen) oder Ladenhüter
(5 Tage nicht entliehen) auszusondern und durch neue Filme zu ersetzen.
|
HOMECINEMA
|
|
|
Das SalesPoint-Framework stellt sich mehr oder weniger als (fast)
lauffähiges Programm dar. Dieses muß um die
anwendungsspezifischen Teile ergänzt werden. Daher erben die
Anwendungsklassen von bestimmten Klassen des Frameworks. Deren
Funktionalitäten werden durch die von der Anwendung benötigten
Funktionalitäten ergänzt und ergeben somit den in diesem
Beispiel aufgeführten Video-Verleih-Automaten.
|
|
|
Folgende Klassen werden für die Lösung der Aufgabenstellung
entworfen und implementiert:
Jede dieser Klassen wird als eine Datei abgespeichert
(Counter.java , Office.java usw.).
|
Klassenübersicht
|
|
VideoMachine ist die zentrale Klasse der Anwendung. Sie
erfüllt wichtige Aufgaben zur Steuerung des Videoautomaten.
|
Funktionen der Klassen
|
|
Wie bereits im technischen Überblick erwähnt, handelt es sich
beim SalesPoint um die Stelle, an der eine
Interaktion mit der Anwendung stattfindet. In diesem Beispiel
benötigen wir zwei Verkaufsstände. Den
Counter , hier können die Videos gekauft werden,
und das Office , an dieser Stelle kann der Manager all
seinen Aufgaben nachkommen.
|
SalesPoint
|
|
An einem SalesPoint kann zu jeder Zeit nur genau ein
Prozeß laufen. Diese Prozesse werden durch die
Klasse SaleProcess implementiert.
|
Prozesse
|
|
Damit am Videoautomaten etwas verkauft werden kann, werden
Kunden benötigt. In der Klasse Customer
wird das Konto eines Kunden verwaltet. Außerdem werden hier
die Rechte einzelner Benutzer des Automaten festgelegt. Jedes Objekt
der Klasse enthält zusätzlich Informationen über die
ausgeliehenen Videos. Die Klasse Customer erbt von
User .
|
Kunden
|
|
Das Klassendiagramm verdeutlicht die Beziehungen zwischen Prozess, Kunde,
Verkaufsstand und Laden. Die Darstellung weicht leicht von der
UML-Notation ab, ist aber an dieser Stelle
sinnvoll. Ohne das Diagramm komplexer zu gestalten, können
auch die Vererbungstrukturen (die Klasse - fett gedruckt - erbt
jeweils von der Klasse, die über dem Klassennamen zu
finden ist) dargestellt werden.
Abbildung 4.1:
Klassendiagramm - Überblick
|
|
|
Die Aufgaben der restlichen Klassen werden im Verlauf der Realisierung
des Videoautomaten erklärt. In den nun folgenden Abschnitten
wird die Implementierung der Anwendung beschrieben.
|
|
|
|
|