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.  
 Aufgabenstellung
  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.  
 Die Grundstruktur
  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.).  
  VideoMachine ist die zentrale Klasse der Anwendung. Sie erfüllt wichtige Aufgaben zur Steuerung des Videoautomaten.  
  Wie bereits im technischen Überblick erwähnt, handelt es sich beim SalesPointsp apilogo 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.  
  An einem SalesPoint kann zu jeder Zeit nur genau ein Prozeß laufen. Diese Prozesse werden durch die Klasse SaleProcesssp apilogo implementiert.  
  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 Usersp apilogo.  
  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.
Klassendiagramm -      Überblick
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.  
 
Den Shop anlegen  naechste Seite
 

by kk15

Valid HTML 4.01!