Klasse mit den Eigenschaften richtig programmieren

03/03/2010 - 17:20 von Alexander Richter | Report spam
Hallo,
wie programmiere ich folgendes richtig.
Ich habe ein Objekt User mit Eigenschaften:

public class User {
public string UserName { get; set; }
public string IPAddress { get; set; }
}

Aus der Datenbank lese ich aus, dass der User Meier
nicht nur eine Berechtigung (KlasseA) hat, sondern
weitere zwei Berechtigungen (KlasseA, Klasse D und
KlasseT).
Nun will ich diese Berechtigungen dem Objekt User
zuordnen. Unsinnig ist sicherlich folgendes:

public class User {
public string UserName { get; set; }
public string IPAddress { get; set; }
public bool KlasseA { get; set; }
public bool KlasseB { get; set; }
public bool KlasseC { get; set; }
public bool KlasseD { get; set; }
public bool KlasseE { get; set; }
public bool KlasseF { get; set; }
//u.s.w.
}

Wie programiert man die Klasse richtig?
Danke für die Hilfe.

Alexander
 

Lesen sie die antworten

#1 Immo Landwerth
03/03/2010 - 18:02 | Warnen spam
Alexander Richter wrote:

wie programmiere ich folgendes richtig.
Ich habe ein Objekt User mit Eigenschaften:

public class User {
public string UserName { get; set; }
public string IPAddress { get; set; }
}

Aus der Datenbank lese ich aus, dass der User Meier
nicht nur eine Berechtigung (KlasseA) hat, sondern
weitere zwei Berechtigungen (KlasseA, Klasse D und
KlasseT).



Mir ist nicht klar, was Klassen jetzt mit Berechtigungen zu tun haben.
Was meinst Du also in diesem Kontext mit Berechtigungen?

Nun will ich diese Berechtigungen dem Objekt User
zuordnen. Unsinnig ist sicherlich folgendes:

public class User {
public string UserName { get; set; }
public string IPAddress { get; set; }
public bool KlasseA { get; set; }
public bool KlasseB { get; set; }
public bool KlasseC { get; set; }
public bool KlasseD { get; set; }
public bool KlasseE { get; set; }
public bool KlasseF { get; set; }
//u.s.w.
}



Du kannst z.B. die verschiedenen Booleschen Eigenschaften einfach als
Menge realisieren:

public class User {
public string UserName { get; set; }
public string IPAddress { get; set; }
public HashSet<Type> AvailableClasses { get; set; }
}

Die Überprüfungen könnten dann so aussehen:

var hasAccessToKlasseA = user.AvailableClasses.Contains(typeof(KlasseA));

Aber ob das wirklich sinnvoll ist, hàngt von Deiner Definition von
Klasse und Berechtigung ab...

Immo Landwerth

Ähnliche fragen