Halihallo Otto
Ich habe nun eine Klasse Warenkorb. Unter /Controls/ befindet sich die Klasse Shop. Sollte ich der Lesbarkeit halber den Warenkorb in einem Unterverzeichnis der Klasse Shop ablegen.
Ist ja eigentlich nicht vererbt worden.
Nein, sollst du nicht. Controls sind Kontrollstrukturen, der Shop kann so eine sein,
jedoch haben "Entities" mit Kontrollstrukturen nichts zu tun.
Daten und Code soll in diesem Sinne auch bei OOP getrennt werden. Controls dienen der
Abstraktion der Prozesse (Kunde anmelden, Kunde Warenkorb, Bestellung, ...), Entitäten
repräsentieren nur die Daten, die von Controls verwendet werden.
Um dir jedoch wirklich bei einer Strukturierung zu helfen müsste man wissen, was genau
die Klassen machen.
In welches Paket würde Warenkorb sonst reinpassen. Ein eigenes Paket Warenkorb wäre doch Bldsinn, oder?
Packet Daten/Storage vielleicht?
ggf. folgender Aufbau:
/Shop/Data/WarenkorbInhalt extends /Storage/Data/DataObject
extends /Storage/DatabaseAccess extends /Storage/Database/MySQL
man sieht hier: MySQL, DatabaseAccess und DataObject können globale Klassen sein, die
weiter spezialisiert werden können, wobei ein Shop WarenkorbInhalt eben schon sehr
programmspezifisch ist und somit in die Klassensammlung "Anwendung - Shop" fallen.
Allgemein habe ich für mich folgende Struktur angewöhnt:
Ist die Klasse programmspezifisch wird es im "Programmverzeichnis" (Projektname)
abgelegt (z.B. /MyShop/ShopSystem oder /MyShop/Data/CartItem).
Für jede Klasse gilt: Sie wird einem Packet zugeordnet, welches ein "Sachverhalt"
definiert, Sachverhalte können sein: Data, Control, Data/Integrity, Design,
Interface, ...
» Das sind die ... (*argh* vergessen), egal. Irgendwas was mit der Repräsentation von
Daten zu tun hat, also z.B.
Entity oder? :-)
Mir lag etwas anderes auf der Zunge, aber Entity lasse ich auch durchgehen :-)
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.