Klassenverknüpfungen

20/02/2009 - 17:55 von Steve Rasch | Report spam
Hallo,

ich habe hier ein kleines Projekt, in welchem ich verschiedene
Personentypen darstellen möchte. Beispielsweise Benutzer, Regisseur,
Schauspieler, Autor und andere. Es kann durchaus vorkommen, das eine
Person zu mehreren Personengruppen gehört. Wie würde man sowas am
Besten implementieren? mir fàllt dazu eigentlich nur sowas ein:

class Person {
public string LastName { get; set; }
public string FirstName { get; set; }
// ...
}

class abstract AbstractPerson {
protected Person person;
public AbstractPerson(Person p) {
person = p;
}
}

class Actor : AbstractPerson {
public Actor(Person p) : base(p) {
}
private List<Film> films;
}

class Film {
private List<Actor> actors;
}

Und da fàllt mir auch grad noch eine Frage ein ;)
Da ich ja in Actor Referenzen auf beliebig viele Filme hab und in Film
auf beliebig viele Actors; gibt es einen Weg, wie man solche doppelten
Verkettung setzt? Ich möchte möglichst nicht beim Verwenden der
Klassen beide Eintragungen von Hand vornehmen, sondern wahlweise nur
ein :D Die andere sollte dann natürlich automatisch nachgezogen werden
- und das ohne endlose Rekursion. Any Hints?

cheers,
Steve
 

Lesen sie die antworten

#1 Frank Dzaebel
20/02/2009 - 19:20 | Warnen spam
Hallo Steve,

ich habe hier ein kleines Projekt, in welchem ich verschiedene
Personentypen darstellen möchte. Beispielsweise Benutzer, Regisseur,
Schauspieler, Autor und andere. Es kann durchaus vorkommen, das eine
Person zu mehreren Personengruppen gehört. Wie würde man sowas am
Besten implementieren?



das kommt ein wenig auf die Gesamtfunktionalitàt
an, die Du letztlich in den Klassen unterbringen willst/musst.
Du kannst ja schon mal sagen, was zum Beispiel gegen
folgendes spràche:

class Person
{
public Person(string vorname, string nachname, Gruppe beruf)
{
Vorname = vorname; Nachname = nachname; Gruppe = beruf;
}
public string Vorname { get; set; }
public string Nachname { get; set; }
public Gruppe Gruppe { get; set; }
}

[Flags]
enum Gruppe
{
Benutzer = 1, Regisseur = 2, Schauspieler = 4, Autor = 8
}

class Film
{
public List<Person> Akteure { get; set; }
// ...
}
______________

Aufruf vielleicht:

Person p = new Person("Steve","Rasch",
Gruppe.Regisseur | Gruppe.Benutzer);
Film film = new Film(); film.Akteure.Add(p);


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen