5.1 Die Klasse Bestellposten

 

 

In diesem Modell setzen sich Bestellungen und Lieferscheine aus Bestellposten zusammen. Dabei enthält jeder Bestellposten eine bestimmten Menge von Einheiten eines bestimmten Produktes. Die Klasse "BestellpostenListe" wird mit Hilfe der Klasse "Liste" aus dieser Klasse erzeugt.

Die Klasse Bestellposten ist in diesem Programm implementiert in der Header-Datei "JWI_Klassen_Bestellposten.h" und der Datei "JWI_Klassen_Bestellposten_Implementaion.cpp", die die Implementierung ihrer Operationen enthält. Die Instanzen dieser Klassen werden als Elemente einer Liste in den Klassen Lieferschein, Verwaltung und Bestellung verwendet; die von der Klasse Bestellung abgeleiteten Klassen Kunden- und Nachbestellung enthalten ebenfalls eine Liste aus Bestellposten. D.h. die Klasse Bestellposten wird in den anderen Klassen immer mit Hilfe der Klasse "Liste" als Liste aus Bestellposten benutzt. 

Im implementations-Modell hat die Klasse Bestellposten folgende Form:

Attribute:

int lfdnr

int bnr

int pnr

int menge

 

Operationen:

Bestellposten(int laufendenr=0, int bestellungsnr=0, int produktnr=0, int menge=0)

~Bestellposten()

void DatenAendern()

int HoleLaufendeNr()

int HoleBestellungsNr()

int HoleProduktNr()

int HoleMenge()

void Neu(int laufendenr, int bestellungsnr)

 

 

5.1.1 Veränderungen zum ursprünglichen Modell

Im ursprünglichen Entwurf werden von der Klasse Bestellposten, die dort nicht iniziierbar ist, die Klassen "Bestellposten-Kundenbestellung" und die Klasse "Bestellposten-Nachbestellung" abgeleitet. Dieses ist im Klassen-Modell der Implementierung nicht mehr notwendig. Der einzige Unterschied dieser beiden Klassen bestand in der Operation "kartei_zuordnen "der Klasse Kundenbestellung. Da jedoch für diese Zuordnung Informationen über den momentanen Bestand des bestellten Produktes erforderlich sind, zu der ein Objekt der Klasse Bestellposten keinen Zugang hat, kann eine solche Operation nur innerhalb der Klasse Verwaltung durchgeführt werden. Damit haben beide implementierbaren abgeleiteten Klasse die gleichen Attribute und Operationen und können zu einer einzigen Klasse Bestellposten zusammengefaßt werden.

Neben den Operationen zur Abfrage der Attribute hat diese Klasse zusätzlich noch eine Operation "DatenAendern" erhalten. Diese Operation soll es ermöglichen, zu einem Bestellposten, der schon zu einer Bestellung gehört, im Nachhinein die Daten Produktnummer oder Menge zu ändern. Damit können Fehler, die bei der Datenzuweisung mit der Operation Neu entstanden sind, korrigiert werden.

Bemerkung:

In beiden Modellen ist jeder Bestellposten eindeutig durch seine laufende Nummer und die Nummer der Bestellung identifiziert. Dieses liegt daran, daß die Bestellungsnummer für Kunden- und Nachbestellungen zusammen eine einheitliche globale fortlaufende Nummer ist. Im Rahmen einer jeden Bestellung wird dann jedem Bestellposten eine fortlaufende lokale Nummer zugeordnet, die den Bestellposten innerhalb der Bestellung identifiziert.