Thema: Delphi Supermarktkasse

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Supermarktkasse

  Alt 11. Aug 2007, 23:57
Zitat von Jelly:
TArtikelCollection ist ja nix anderes als die Kasse an sich, also könnte man da so Sachen wie Kassennummer, Kassierin usw. reinhauen.
Und genau das würde ich nicht machen. TArtikelCollection entspricht ja eigentlich der Inventarliste, oder wie man das nennt, und die hat ja nichts mit den Kassen und den Kassierern zu tun. Kann sie ja auch gar nicht, weil man ja nicht weiß, an welcher Kasse der Artikel bezahlt wird.
Ich würde mit drei Klassen arbeten:
TArtikel - Beschreibt einen Artikel
TArtikkelCollection - Verwaltet die Artikel
TKasse - Verwaltet die Kasse und kennt die Artikelliste

Und im einzelenen Würde dass dann so aussehen:

TArtikel
- ID
- Preis Netto
- MwSt (weil unterschiedlich Lebensmittel, Luxusartikel)
- Bescheibung
- Warengruppe
- Hinzugefügt
- Verkaufsdatum
(- Verfallsdatum
- Einkäufer
- Großhändler
- ...
- ...)

TArtikellCollection
- Artikel: Liste(TArtikel)
- Hinzufügen
- Löschen (Verkauft oder entsorgt)
- Anzahl

TKasse
- ID
- Kassiererin
- Artikel bezahlen (Scannen, Preis eingeben)
- Gekaufte Artikel: Liste
- Hinzufügen
- Löschen (Stornieren)
- Anzahl
- Kassenabschluss (Summe aller Tageseinnahmen)

So würde ich es machen und das wwürde mir sinnvoll erscheinen.

Generelle Anmerkung: Es wird immer wieder gesagt, um richtig OOP programmieren zu können, müsste man abstrakt denken. Ich würde eher sagen, man muss die Realität verstehen und in einzelne sinnvolle Einheiten zerlegen können, dann ergibt sich die Klassenstruktur ganz von selber. Ich stelle mir das meist als Theaterstück oder so vor: Was für Darsteller / Akteure spielen mit, was machen sie und was müssen sie dazu können. Hier haben wir drei Akteure: Den Artikel, das Lager (Verkaufsraum) udn die Kasse. Was muss der Artikel können? Seine Eigenschaften verwalten. Was muss das Lager können? Eine List der Artikel führen ud zu dieser Liste Artikel hinzufügen und entfernen können. Was muss die Kasse können? Ihre Eigenschaften verwalten. Artikel einscannen und deren Preise aufsummieren können. Am Tagesende einen Kassenabschluss machen können.

Man könnte das Beispiel oben noch weiter zerlegen, in dem man sagt, dass TArtikel eine Elternklasse ist und die Warengruppen auch noch als Klassen vom Typ TArtikel sieht.

Es kommt auch darauf an, wie weit man gehen will oder soll.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat