OO-Frage

12/02/2008 - 10:38 von Robert Schneider | Report spam
Hallo NG,

habe mal eine abstrakte Frage: Ist es in .NET eigentlich irgendwie elegant
zu erreichen, dass man in einer Anwendung zwei (oder mehr) völlig getrennte
Objektmengen hat, die aber auf einer gleichen Menge von Klassen basieren?
Vielleicht mittels Attribute?

Beispiel: Eine Klasse Auto und eine Klasse Reifen. Klasse Auto hat 4
Membervariablen für Reifeninstanzen. Wenn nun zwei Autoobjekte existieren,
jeweils mit 4 Reifenobjekte, so wàren das zwei Mengen (eine Menge enthàlt 1
Auto und 4 Reifen). Nun möchte ich halt verhindern, dass Reifen der einen
Menge dem Auto der anderen Menge zugewiesen werden können. Zwei disjunkte
Mengen, ums mal formal auszudrücken.

Gibt's da irgendwas? 'Objectspaces', oder so? Oder könnte man den
Membervariablen ein paar selbstgebastelte Attribute verpassen? Das Problem
ist ja, dass ich einer einfachen Membervarialben alles zuweisen kann,
solange der Typ stimmt. Könnten da nicht die Attribute etwas Arbeit
übernehmen? Wenn ja, wie?

Und am Rande würde mich interessieren, ob da andere Sprachen vielleicht
etwas parat haben (falls das in .net nicht so einfach geht).

Grüße an euch,
Robert
e-mail: r_.s_chnei_der\wein_gart_ner.com (remove all '_' and replace '\'
with '@')
 

Lesen sie die antworten

#1 Peter Fleischer
12/02/2008 - 11:27 | Warnen spam
"Robert Schneider" schrieb im Newsbeitrag
news:
Hallo NG,

habe mal eine abstrakte Frage: Ist es in .NET eigentlich irgendwie elegant
zu erreichen, dass man in einer Anwendung zwei (oder mehr) völlig
getrennte Objektmengen hat, die aber auf einer gleichen Menge von Klassen
basieren? Vielleicht mittels Attribute?

Beispiel: Eine Klasse Auto und eine Klasse Reifen. Klasse Auto hat 4
Membervariablen für Reifeninstanzen. Wenn nun zwei Autoobjekte existieren,
jeweils mit 4 Reifenobjekte, so wàren das zwei Mengen (eine Menge enthàlt
1 Auto und 4 Reifen). Nun möchte ich halt verhindern, dass Reifen der
einen Menge dem Auto der anderen Menge zugewiesen werden können. Zwei
disjunkte Mengen, ums mal formal auszudrücken.

Gibt's da irgendwas? 'Objectspaces', oder so? Oder könnte man den
Membervariablen ein paar selbstgebastelte Attribute verpassen? Das Problem
ist ja, dass ich einer einfachen Membervarialben alles zuweisen kann,
solange der Typ stimmt. Könnten da nicht die Attribute etwas Arbeit
übernehmen? Wenn ja, wie?

Und am Rande würde mich interessieren, ob da andere Sprachen vielleicht
etwas parat haben (falls das in .net nicht so einfach geht).



Hi Robert,
du kannst in jedem Auto eine Liste vom Typ Reifen haben. Wenn du nichts
weiter unternimmst, kannst du jeden Reifen (jedes Reifen-Objekt) auch an
jedem beliebigen Auto nutzen. Wenn dud as nicht willst, musst du dir zu
jedem reifen merken, zu welchem Auto er gehört. Üblicherweise wird so etwas
mit einer Parent-Eigenschaft gemacht. Die Add-Methode der Reifenliste im
Auto prüft dann, ob Parent zu Me passt. Wenn das nicht passt, dann kannst du
eine Ausnahme erzeugen.

Viele Gruesse

Peter

Ähnliche fragen