000
10.09.2006, 11:22 Uhr
masterblume
|
Hallo,
ich habe ein Problem mit einem Klassen-Design
Ich soll eine Eventklasse für ein Kassensystem designen.
Leider fällt mir dazu nichts richtiges ein.
Das ist die Aufgabenstellung:
Zitat: |
Aufgabenstellung Die Firma entwickelte in den letzten Monaten eine neue Kassensoftware für ihre Filialen. Eine Besonderheit ist dabei die Aufteilung in zwei getrennte Prozesse, ein Verwaltungsprozess für die Kassenperipherie (KassenClient in C) und ein Hardware unabhängiger Prozess für die Geschäftslogik (Kasse in C++). Unter Linux gibt es mehrere Techniken für die Interprozesskommunikation ( Sockets, Shared Memory, Named Pipes, Message Queues, ... ). In unserer Software verwenden wir Message Queues.
D.h. Befehle (Kasse -> KassenClient) und Nachrichten (KassenClient -> Kasse) werden durch Messages dargestellt und im jeweiligen Prozess interpretiert bzw. ausgewertet.
ein paar Nachrichten sind z.B. - Taste '1' wurde gedrückt - Druckerabdeckung ist offen - Scannerdaten sind vorhanden - Schublade ist offen/zu - Schublade ist gerade auf/zu gegangen
ein paar Befehle sind z.B. - öffne Schublade - drucke eine Zeile "ich bin eine Druckerzeile" auf den Bondrucker - zeige "ich bin eine Displayzeile" auf dem Kundendisplay
Da die Geschäftslogik in C++ geschrieben wurde wird eine Message aus der Queue gelesen und in ein Objekt einer Klasse POSEvent umgewandelt.
wie könnte die Klasse POSEvent definiert sein?
|
Es ist auch nur eine Testaufgabe.
Was ich bis jetzt hab sind solche Sachen wie:
C++: |
//Klassendefinition class POSEvent { public: POSEvent(); double GibGesamtBetrag(); double GibRestgeld(); ZahlungPerEC(); ZahlungPerBar(); ZahlungPerKreditkarte(); ZahlungErhalten(); ECKarteUngueltig(); KreditkarteUngueltig();
|
Ich weiß einfach nicht, ob ich mich auf dem richtigen Weg befinde!
Klar ist mir natürlich auch, dass ihr mir jetzt hier keine Super Klasse hinzaubert. Das erwarte ich auch nicht, mir wären Tipps, Denkanstöße, Hinweise oder Quellenangaben wo ich so etwas nachlesen könnte hilfreich.
Ich hoffe, ich habe im richtigen Bereich gepostet.
Über jeder Hilfe bin ich dankbar.
Gruss Martin |