D
Drake85
Gast
Hallo Leute,
ich habe eine Frage an euch, wie ein gutes Klassendesign auszusehen hat. Grundsätzlich kann ich ja alles beliebig weit aufteilen, nur was ist da ein vernünftiges Maß?
Angenommen ich habe jetzt die Aufgabe einen Schüler zu Modellieren. Ich habe jetzt die Aufgabe so gelöst:
Der Schueler ist eine eigene Klasse. Als Attribute hat er SchuelerDaten (Name, Vorname, Adresse, etc.), Schulkonto (Kontonummer, Kontostand, etc.), Klasse (Klassenlehrer, Bezeichnung, Raum, etc.), Noten, usw.
Meine Idee war es, dass die Klasse Schueler sozusagen eine Struktur für weitere Klassen ist. Damit ist das ganze aufgeräumt.
Mein Kumpel sagt aber etwas anderes. Er erstellt eine einzige Klasse Schueler und schreibt dort alles als Attribut rein. Nochmal im Vergleich.
Meine Version: schueler.schuelerDaten.Name
Seine Version: schueler.Name
Seine Argumente liegen z.B. in der besseren Performance, so dass man nicht mehrere Objekte anlegen und verwalten muss. Außerdem war er der Meinung, dass der Zugriff auf den Namen mit meiner Version teuerer ist, als mit seiner.
Ich war der Meinung, dass es eh alles in O(1) liegt und von daher egal ist, was man macht. Aber bei meiner Version habe ich eine bessere Übersicht über die Klassen.
Wer hat von uns recht?
ich habe eine Frage an euch, wie ein gutes Klassendesign auszusehen hat. Grundsätzlich kann ich ja alles beliebig weit aufteilen, nur was ist da ein vernünftiges Maß?
Angenommen ich habe jetzt die Aufgabe einen Schüler zu Modellieren. Ich habe jetzt die Aufgabe so gelöst:
Der Schueler ist eine eigene Klasse. Als Attribute hat er SchuelerDaten (Name, Vorname, Adresse, etc.), Schulkonto (Kontonummer, Kontostand, etc.), Klasse (Klassenlehrer, Bezeichnung, Raum, etc.), Noten, usw.
Meine Idee war es, dass die Klasse Schueler sozusagen eine Struktur für weitere Klassen ist. Damit ist das ganze aufgeräumt.
Mein Kumpel sagt aber etwas anderes. Er erstellt eine einzige Klasse Schueler und schreibt dort alles als Attribut rein. Nochmal im Vergleich.
Meine Version: schueler.schuelerDaten.Name
Seine Version: schueler.Name
Seine Argumente liegen z.B. in der besseren Performance, so dass man nicht mehrere Objekte anlegen und verwalten muss. Außerdem war er der Meinung, dass der Zugriff auf den Namen mit meiner Version teuerer ist, als mit seiner.
Ich war der Meinung, dass es eh alles in O(1) liegt und von daher egal ist, was man macht. Aber bei meiner Version habe ich eine bessere Übersicht über die Klassen.
Wer hat von uns recht?