Frage zu Objektmodel

21/12/2007 - 13:27 von Roland Schumacher | Report spam
Hallo NG

Ich habe vor dem Mittagessen eine, na ja, hefitge Diskussion gehabt.
Eure Meinung ist gefragt.
Ich muss zur Zeit ein Objektmodel für eine C# Anwendung definieren. Die
Anwendung greift auf eine DB zu.
Dabei ging ich davon aus das eine Entitàt = Objekt ist.
Das heisst, für eine Tabelle User gibt es ein Objekt User.
Ich habe also das ERM auf ein Objektmodel abgebildet.

Frage 1: Macht das Sinn?

Es gibt Tabellen die nur aus einer ID und einem Wert bestehen.
Das heisst, es gibt auch Objekte die nur eine ID und ein Wert haben.
Der grosse Einwand war nun, dann könne man den Wert ja gleich in einem
anderen Objekt speichern.
Z.b. Hat ein Interview eine Shift. Die Shift hat einen Wert "Shift 1".

Wie so schreibt man jetzt nicht einfach:
inter.Shift = "Shift 1";

Ich sage, für alles ein Ojekt.

inter.Shift = new Shift();

Chef -> unnötig
Ich -> alles was in ein Objekt kann soll in ein Objekt.

Was meint ihr?

Gruss
Roland Schumacher
http://blog.geniali.ch/
 

Lesen sie die antworten

#1 Martin Pöpping
21/12/2007 - 19:21 | Warnen spam
Hallo,

Roland Schumacher schrieb:

Ich habe vor dem Mittagessen eine, na ja, hefitge Diskussion gehabt.
Eure Meinung ist gefragt.
Ich muss zur Zeit ein Objektmodel für eine C# Anwendung definieren. Die
Anwendung greift auf eine DB zu.
Dabei ging ich davon aus das eine Entitàt = Objekt ist.
Das heisst, für eine Tabelle User gibt es ein Objekt User.
Ich habe also das ERM auf ein Objektmodel abgebildet.

Frage 1: Macht das Sinn?

Es gibt Tabellen die nur aus einer ID und einem Wert bestehen.
Das heisst, es gibt auch Objekte die nur eine ID und ein Wert haben.
Der grosse Einwand war nun, dann könne man den Wert ja gleich in einem
anderen Objekt speichern.
Z.b. Hat ein Interview eine Shift. Die Shift hat einen Wert "Shift 1".

Wie so schreibt man jetzt nicht einfach:
inter.Shift = "Shift 1";

Ich sage, für alles ein Ojekt.



Den Spruch "Alles ist ein Objekt" kannst Du IMHO nur auf Sprachen
anwenden, die so konzipiert wurden (Ruby, Python, Smalltalk ...).

inter.Shift = new Shift();

Chef -> unnötig
Ich -> alles was in ein Objekt kann soll in ein Objekt.

Was meint ihr?




ich würde es macht keinen Sinn jede Tabelle krankhaft einem Objekt
zuzuordnen. Dafür gibt es die Adapter-Klassen, gerade in C#.

Zu Deinem Beispiel...

Muss dieser Shift irgendetwas können oder ist es quasi nur ein Zustand?
Solche Fragen sollte man sich stellen.
Wenn der Shift irgendwelche Eigenschaften hat ausser den Status "Shift
1" etc., dann würde ich eine Klasse machen. Ansonsten nicht.

Sonst hast Du nachher 10.000 Klassen obwohl eigentlich 60 Klassen
gereicht hàtten. Das erschwert die Lesbarkeit und Wartbarkeit des Codes
erheblich.


Viel Erfolg,

Martin



Error: No keyboard detected, press F1 to continue

Ähnliche fragen