Klassenaufbau Rechte- / Gruppensystem

splasch

Erfahrenes Mitglied
Ich hab eine verständnis Frage bezüglich Beziehungen zwischen klassen. Ein User kann ja in mehren Gruppen sein (1/n).
Wie kann ich mir das nun bei den Klassen vorstellen wird dort einfach ein Objekt der User klasse in die Klasse Gruppe übernohmen oder wie folgt die Beziehungs zuweisung.

Muß für jede Gruppe ein weiteres user Objekt übergeben werden oder wird nur 1 user objekt für alle seine gruppen erstellt.
So ein Rechte System ohne OO aufzubauen ist relative einfach aber in OO steh ich da vollkommen an.

Hat villeicht jemand von euch ein vollständiges Klassen diagram über ein Benutzer rechte system. Wo auch die eigenschaften und methoden eingetragen sind.Sowie die Abstracten klassen.

Mfg Splasch
 

Anhänge

  • Klassendiagramm.jpg
    Klassendiagramm.jpg
    5 KB · Aufrufe: 104
zu der angehängten Grafik:

Du speicherst einfach in der Benutzerklasse ein Array Gruppen, in welchem du alle Gruppen einträgst denen dieser User angehört.
 
zu der angehängten Grafik:

Du speicherst einfach in der Benutzerklasse ein Array Gruppen, in welchem du alle Gruppen einträgst denen dieser User angehört.

Danke für den Hinweis das hilft schon sehr weiter.Wenn ich das richtig verstanden habe soll ich das von anderen Seite her angehen und bei user ein objekt der Gruppe speichern.

Mfg Splasch
 
Exakt. Bei 1:1 Beziehungen ist es egal wo du es speicherst. Bei 1:n immer auf der 1er Seite speichern, und bei n:m musst du dir eine eigene Datenstrucktur schreiben die die Verknüpfung übernimmt.
 
Exakt. Bei 1:1 Beziehungen ist es egal wo du es speicherst. Bei 1:n immer auf der 1er Seite speichern, und bei n:m musst du dir eine eigene Datenstrucktur schreiben die die Verknüpfung übernimmt.

Danke
Ich hab das nun mal bei der 1 Seite im Diagram eingezeichnet. Siehe Anhang
Wenn das so stimmt werd ich versuchen die Restlichen Klassen auch noch ins Diagram einzuzeichnen.

Mfg Splasch
 

Anhänge

  • Klassendiagramm.jpg
    Klassendiagramm.jpg
    11,8 KB · Aufrufe: 129
Zuletzt bearbeitet:
Im Klassendigramm solltest du aber diese Speicherobjekte nicht einzeichnen, es gibt ja eh die Linie zwischen den Klassen und mittels eines Rollennamens wird definiert wie die Beziehung (das Array) heißt.
 
Ok habs mal versucht und die Array rausgenohmen. Hast du das so gemeihnt.

Mfg Splasch
 

Anhänge

  • Klassendiagramm.jpg
    Klassendiagramm.jpg
    11 KB · Aufrufe: 80
Ja sehr gut. Rein syntaktisch sollte der Rollenname noch genau über der Linie stehen und auf dem Ende der Kante sein an dem die Klassen hängt in der der Variable stehen soll. Ist aber reine Kosmetik
 
Danke die Kosmetischen sachen werd ich später mal machen wenn das Diagram fertig ist. Momentan Kämpf ich eh noch mit der Diagram erstellung herum.

Neues Programm unsw, (Argo uml)

Woran erkenn ich wann es sinvoll ist jetzt eine Abstrace Klasse einzuleiten.Abstrace Klassen sind ja so ein art Vorlage die man ja nur braucht wenn es eine andere Art des Objekt geben soll. Wie zum Beispiel bei verschiedenen Datenbank verbindungen. (PDO ,Mysql,Mysqli unsw.)

Aber wie kann ich mir das bei einen Rechtesystem vorstellen. Brauche ich da für den User eine Abstrace klasse. Kann es andere arten von User geben? Oder wo muß ich hier ansetzen das ich selbst erkennen kann wann und wo eine Abstracte klasse sin macht.

Mfg Splasch
 
Deine Überlegung ist schon ganz gut. Sinn macht eine Abstrakte Basisklasse nur dann wenn auch mehr als eine Klasse von ihr erbt. Weiters ist

Bsp.: Du unterscheidest in einer Buchhaltungssoftware zwischen Angestellten und Arbeitern. Alle diese "Dinge" sind Menschen, jeder hat ein GebDatum, eine Adresse uws. Hier würde es sinn machen eine abstrakte Basisklasse Mensch zu implementieren die diese Daten enthält und von der aus dann Angestellter, Arbeiter abzuleiten.

Es macht aber auch nur dann Sinn wenn sich Angestellter und Arbeiter durch irgendwelche Attribute unterscheiden sollen.
 
Zurück