Umsetzungsfrage: Personen mit mehreren "Rollen"

UnkiDunki

Bekanntes Mitglied
Hi,

Ich beschäftige mich aktuell mit einer Personenverwaltung. Personen können mehrere "Rollen" übernehmen: z.B. Kunde, Mitarbeiter, Lieferant, etc.
Dafür habe ich eine GUI, in welcher im ersten Reiter die allgemeinen Personendaten zu sehen sind und dann Checkboxen, um Personen schnell in Rollen wechseln zu lassen oder ihnen eine zusätzliche zuzuteilen. Bei Klick wird dann automatisch ein neuer zur angeklickten Rolle abhängiger Reiter hinzugefügt, wo man rollenspezifische Daten bearbeiten kann.

Frage: Wie setze ich das programmiertechnisch am besten um? Meine Frage zielt dabei NICHT auf GUI-spezifische Dinge.

Programmiertechnisch erben ja alle Rollen von Klasse "Person". Wenn ich aber so verfahre und in den Details einer Person einen Kunden-Reiter und einen Lieferanten-Reiter habe, dann muss ich ja zusätzlich mit den Klassen "Kunde" und "Lieferant" arbeiten... von Person geerbt bedeutet das ja, dass ich eine gewisse Redundanz habe, die mir auch später beim Speichern kleinere Schwierigkeiten bringt.

Umgesetzt habe ich das bisher so, dass ich die Rollen nicht mehr von Person erben lasse und ich so die Daten in den Rollen-Tabs personenunabhängig speichere (unter Berücksichtigung der Personen-ID natürlich)...

Ich hoffe, dass ich mich einigermaßen verständlich machen konnte und freue mich auf Anregungen :)
Bitte nachfragen, wenn etwas nicht klar sein sollte. Danke im Voraus :)
 
G

Gast2

Gast
Programmiertechnisch erben ja alle Rollen von Klasse "Person".

Warum das? Eine Rolle ist eine Rolle keine Person. Personen haben Rollen.

Ich würde also der Klasse Person eine Liste von Rollen mitgeben. In einer Datenbank hast du also eine 1:m Beziehung von Personen:Rollen, anders würde ich das nicht modelieren - somit gehst du meiner Meinung nach schon den richtigen Weg.
 
Zuletzt bearbeitet von einem Moderator:

UnkiDunki

Bekanntes Mitglied
Hi, danke für die Antwort :)

Ok... Du hast natürlich irgendwie Recht. Personen haben Rollen... Aber ein z.B. Kunde ist ja eine Person... und hat neben den Eigenschaften der Person ja auch Kundeneigenschaften... Ist ja nicht so, dass das einfach nur ein Flag in Klasse Person wäre, die eine Person zu einem Kunden machen...

In der Datenbank habe ich eine PERSON-TABELLE und halt CUSTOMER-, SUPPLIER-, etc. TABELLEN mit den rollenspezifischen Eigenschaften...

Habe ich dich dann richtig verstanden, dass dann die Klasse PERSON auch die Eigenschaften der unterschiedlichen "Rollen" verinnerlicht? Ist ja eigentlich nicht so...
 

jeppi

Mitglied
Hi, danke für die Antwort :)
Ist ja nicht so, dass das einfach nur ein Flag in Klasse Person wäre, die eine Person zu einem Kunden machen...

Ich versteh das jetzt aus meiner evtl. eingeschränkten ;) Erfahrungssicht genauso wie fassy:

Du ordnest einer Person verschiedene Rollen zu (Zitat: "Checkboxen, um Personen schnell in Rollen wechseln zu lassen oder ihnen eine zusätzliche zuzuteilen.")

Die vorherige Frage, von welcher Seite Du das Pferd aufzäumst, ist sehr wichtig, weil Du ggf. sonst das Projekt komplett neu programmieren kannst, wenn Du merkst, das Deine Sichtweise verkehrt ist und Du Dich verrannt hast.

Stehen die Rollen (Eigenschaften?) im Vordergrund oder die Person? Soll heißen:

Weißt Du einer Person verschiedene Rollen zu oder einer Rolle verschiedene Personen?
Im ersten Falle Hast Du eine Personenverwaltung, im zweiten eine Rollenverwaltung.

So, wie Du Dich oben ausdrückst, willst Du Personen verwalten. Dann solltest Du den Personen die Eigenschaften (Rollen) zuweisen, nicht umgekehrt.

Ich würde mich an dieser Stelle nicht in der Möglichkeit der Vererbung festbeissen, sondern mir überlegen, was wozu welche Beziehungen hat.

Ich habe in meinem Leben schon verschiedene Rollen gehabt: Laborant, Verkäufer, Klinkenputzer... diese Rollen trage ich als Liste in meinem Lebenslauf mit mir rum und vererbe (klone?) mich nicht in verschiedene Rollen - mich gibt's als Person nur einmal. Die Welt dürfte dankbar dafür sein :pfeif:
 
G

Gast2

Gast
Habe ich dich dann richtig verstanden, dass dann die Klasse PERSON auch die Eigenschaften der unterschiedlichen "Rollen" verinnerlicht? Ist ja eigentlich nicht so...

Indirekt schon. Die Person hat die Rolle, die Rolle hat bestimmte Eigenschaften. Also hat die Person über Umwege auch diese Eigenschaft.

Einfaches Beispiel:

1) Wir haben eine Person Klaus
2) Klaus hat die Rolle Senior Manager
3) Die Rolle Senior Manager hat als Eigenschaft das Recht an Vorstandsitzungen teilzunehmen
-> Also hat Klaus doch das Recht an Vorstandsitzungen teilzunehen, oder?

Was macht dann unser Wachmann an der Tür zum Konferenzraum? Er sieht sich den Ausweis von Klaus an (gehen wir mal davon aus er kennt Klaus nicht schon) und prüft a) entweder ob der Name auf der Gästeliste steht oder aber b) Klaus berechtigt ist einzutreten aufgrund seiner Position in der Firma.

Java:
public boolean hasAccess(Person person)
    if(guestList.contains(person.getName())){
        return true;
    } else {
       List<Role> roles = person.getRoles();
       for(Role r : roles){
           if(hasAccess(r){
              return true;
           }
       }
       return false;
    }

public boolean hasAccess(Role role){
   if(role.getManagmentLevel() >= Role.SENIOR_MANAGER){
       return true;
   } else {
       return false;
   }
}

Kommt halt immer alles drauf an was du eigentlich modellieren willst.
 
Zuletzt bearbeitet von einem Moderator:

UnkiDunki

Bekanntes Mitglied
Die vorherige Frage, von welcher Seite Du das Pferd aufzäumst, ist sehr wichtig, weil Du ggf. sonst das Projekt komplett neu programmieren kannst, wenn Du merkst, das Deine Sichtweise verkehrt ist und Du Dich verrannt hast.

Genau deswegen habe ich diesen Thread geöffnet, denn besser Vorsicht als Nachsicht :)

Stehen die Rollen (Eigenschaften?) im Vordergrund oder die Person? Soll heißen:

Weißt Du einer Person verschiedene Rollen zu oder einer Rolle verschiedene Personen?
Im ersten Falle Hast Du eine Personenverwaltung, im zweiten eine Rollenverwaltung.

Vielleicht habe ich auch immer den Begriff "Rolle" falsch gewählt?
Ich möchte gerne mal beschreiben, wie ich die Verwaltung vorher hatte, denn dann wird das wahrscheinlich klarer:

Ich hatte mehrere Übersichten, sprich eine Kundenübersicht/verwaltung, eine Lieferantenübersicht/verwaltung, etc.
Habe ich mir dann in der z.B. Kundenverwaltung die Details einer Person angeguckt um sie ggf. zu bearbeiten, so griff ich auf "class Customer extends Person" zurück, weil ich so alle Daten zur Verfügung hatte, die ich brauchte und konnte gleichzeitig Änderungen in den generellen Personen- als auch in den Kundeninformationen ggf. speichern.

Ich habe also praktisch für jede "Rollenübersicht" bzw. für das Anzeigen und Bearbeiten einer sich dort befindlichen Person ein "Rolle extends Person" verwendet.

AKTUELL habe ich dieses Konzept verworfen und nur noch eine Übersicht mit nun Hauptkategorien "Kunde", "Lieferant", etc.
In den Details der Personen hatte ich es also theoretisch, wenn man obiges Konzept übernimmt, gleichzeitig mit "class Customer extends Person", "class Supplier extends Person" etc. zu tun und genau an dem Punkt wurde ich dann auch stutzig und habe mein Rollenklassenkonzept hinterfragt und schließlich dann hier gepostet :)

Die Frage, ob das jetzt ne Personverwaltung oder ne Rollenverwaltung ist, kann ich irgendwie nicht beantworten, weil ich das Gefühl habe, dass das jetzt irgendwie beides ist... da liege ich wahrschlich falsch :)

fassy hat gesagt.:
1) Wir haben eine Person Klaus
2) Klaus hat die Rolle Senior Manager
3) Die Rolle Senior Manager hat als Eigenschaft das Recht an Vorstandsitzungen teilzunehmen
-> Also hat Klaus doch das Recht an Vorstandsitzungen teilzunehen, oder?

Schönes Beispiel :) Und ich glaube, genau da sehe ich auch mein Problem. Mit meiner jetztigen Umsetzung kann Klaus in einem Moment immer nur "Senior Manager" sein und nicht noch eine weitere Rolle innehaben... oder ich müsste gleichzeitig mit zwei Klaus' arbeiten, was den Wachmann aber kann schön verwirren würde, der arme...

Mhmm... damit gelangen wir dann zu:

fassy hat gesagt.:
Die Person hat die Rolle, die Rolle hat bestimmte Eigenschaften. Also hat die Person über Umwege auch diese Eigenschaft.

Und damit zu der von dir geposteten "Schlüsselzeile"
Java:
List<Role> roles = person.getRoles();

Korrekt?

Das Datenbank- bzw. Tabellenkonzept kann man aber dann lassen, oder?

also TABLE PERSON (id,...) und für jede Rolle ein TABLE ROLLE(id, ...) mit FOREIGN KEY(id) REFERENCES PERSON(id)...
 
Zuletzt bearbeitet:
G

Gast2

Gast
Ich würde eher sagen:

1) Tabelle Persons
2) Tabelle Roles
3) Tabelle Person_Role_Mappings

Bist du deutlich flexibler mit und hälst dir deine Masterdaten sauber von irgendwelche Abhängigkeiten in anderen Tabellen.

Ich glaube aber du solltest mal schauen ob generell dein Datenmodell das ist was du wirklich möchtest. Kann ein Customer jemals eine Supplier sein oder sind das disjunkte "Rollen"?

Evlt macht es wir oben schon mal geschrieben mehr Sinn deine beiden oder drei Rollen in die Mitte des Modells zu rücken:

1) Tabelle Customers
2) Tabelle Supplier
3) Table Persons

Was soll denn z.B. Persons enthalten? Ist es eine 1:1 beziehung oder 1:n oder noch besser n:m zu den Customers?

Also kann ein Customer mehrere Personendatensätze haben (z.B. für verschiedenen Lieferadressen), oder kann die gleiche Person zwei Customer Entitäten innehaben. Einmal privat und einmal als Firmenkunde z.B. Kann eine Person ganz ohne Customer oder Supplier Entität existieren? Von allen diesen (und noch mehr wenn du nachdenkst) Business Regeln muss du dein Datenmodell ableiten.

Wenn dein Datenmodell sicher steht kannst du dir erst überlegen wie du die grafische Bearbeitung von den Daten in dem Modell umsetzen kannst. Sonst machst du alles 3 bis 10 mal.
 

UnkiDunki

Bekanntes Mitglied
Hi,

eine einzige Tabelle "Roles" macht doch keinen Sinn, wenn die unterschiedlichen Rollen unterschiedliche Eigenschaften haben. Da komme ich doch garnicht drumherum für jede Rolle ne eigene Tabelle zu machen, oder nicht?

Kann ein Customer jemals eine Supplier sein oder sind das disjunkte "Rollen"?

Theoretisch kann eine Person alle Rollen gleichzeitig besitzen. Da gibt es keine Beschränkungen.

1) Tabelle Customers
2) Tabelle Supplier
3) Table Persons

Was soll denn z.B. Persons enthalten? Ist es eine 1:1 beziehung oder 1:n oder noch besser n:m zu den Customers?

Also geplant war eine 1:1 Beziehung, wobei du mich jetzt schon ein wenig verunsicherst (im positiven Sinn) :)
Deswegen hatte ich mir auch eine Tabelle "Person_Role_Mappings" gespart und das wie oben beschrieben umgesetzt.
Und ja, eine Person kann auch ohne eine bestimmte Rolle existieren!
 
G

Gast2

Gast
Hi,
eine einzige Tabelle "Roles" macht doch keinen Sinn, wenn die unterschiedlichen Rollen unterschiedliche Eigenschaften haben. Da komme ich doch garnicht drumherum für jede Rolle ne eigene Tabelle zu machen, oder nicht?

Das macht durchaus Sinn, quasi als Header Tabelle die alle Gemeinsamkeiten von Rollen (Rollenname, Id, Beschreibung etc) enthält.

Also geplant war eine 1:1 Beziehung, wobei du mich jetzt schon ein wenig verunsicherst (im positiven Sinn) :)
Deswegen hatte ich mir auch eine Tabelle "Person_Role_Mappings" gespart und das wie oben beschrieben umgesetzt.
Und ja, eine Person kann auch ohne eine bestimmte Rolle existieren!

So wie du es gemacht hast kann man es auch machen. allerdings ist das nicht grade eine Normalform. Was machst du wenn 5 Leute die gleiche Rolle haben? Dann hättestest du 5 mal die gleiche Zeile in deiner Tabelle (ok, anderer FK und evtl andere Id), das sollte man vermeiden.

Wie gesagt versuch mal deine "Welt" so detail getreu wie möglich genau zu definieren damit du daraus ein Datenmodell machen kannst.
 

UnkiDunki

Bekanntes Mitglied
Was machst du wenn 5 Leute die gleiche Rolle haben? Dann hättestest du 5 mal die gleiche Zeile in deiner Tabelle (ok, anderer FK und evtl andere Id), das sollte man vermeiden.

Ne... moment. Wie können denn 5 Leute die gleiche Rolle haben bzw. den gleichen Rollendatensatz? Das verstehe ich nicht. Die Tabelle "Customers" ist ja praktisch nur die Erweiterung zur Person oder nicht?
Mit zusätzlichen Eigenschaften wie z.B. Steuergruppe oder Rabattstufe etc.
Es wird ja bei den 5 Leuten nicht auf einen Datensatz gezeigt, sondern jeder hat seinen eigenen mit unterschiedlichen Werten.
Oder möchtest du neben der Rollen-Tabelle, dann NOCH EINE mit den rollentypischen Eigenschaften?

Das macht durchaus Sinn, quasi als Header Tabelle die alle Gemeinsamkeiten von Rollen (Rollenname, Id, Beschreibung etc) enthält.

Und wo schlüssel ich dann bitte auf? Gemeinsamkeiten ok... aber wo werden dann die Eigenschaften erfasst die Rollenspezifisch sind?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Klassen Umsetzungsfrage zu Spiel "Zuul" Java Basics - Anfänger-Themen 3
B Zeitgleiches Arbeiten am Code mit mehreren Personen? Java Basics - Anfänger-Themen 7
W Personen sortieren mit Comparator Java Basics - Anfänger-Themen 9
K Geburtsdaten von Mehreren Personen speichern und Alter ausgeben Java Basics - Anfänger-Themen 11
J Eintragen von Personen in JTable Java Basics - Anfänger-Themen 4
M Array von Personen anzeigen Java Basics - Anfänger-Themen 3
M Klassen Generische Klassen, Personen und Gruppen Java Basics - Anfänger-Themen 6
G Wie lege ich ein Array für 10 Personen an???? Java Basics - Anfänger-Themen 25
M Projekt Personen Java Basics - Anfänger-Themen 10
R Finde meinen Fehler nicht! - Namen von Personen vergleichen Java Basics - Anfänger-Themen 6
S Geburtstage von Personen Java Basics - Anfänger-Themen 53
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
freudianslip if-Statement mit mehreren Zahlenwerten Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
G String mit mehreren Attributen aufteilen Java Basics - Anfänger-Themen 6
B Funktion mit mehreren Rückgabewerten aka Prozeduren? Java Basics - Anfänger-Themen 12
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
O compareTo nach mehreren Kriterien Java Basics - Anfänger-Themen 13
B Java Mail: suchen von mehreren Emailadressen Java Basics - Anfänger-Themen 5
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
G Refactoring von mehreren identischen Klassen Java Basics - Anfänger-Themen 36
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
E if-Bedingung mit mehreren Möglichkeiten ? Java Basics - Anfänger-Themen 6
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
A String mit mehreren Zeilen splitten Java Basics - Anfänger-Themen 4
U Schleife mit mehreren Bedingungen ? Java Basics - Anfänger-Themen 29
C OOP Von mehreren Klassen aus auf das selbe Objekt zugreifen Java Basics - Anfänger-Themen 8
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
B Variable in mehreren Klassen nutzen Java Basics - Anfänger-Themen 4
D Eine MySQL Verbindung in mehreren Klassen Java Basics - Anfänger-Themen 8
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
S OOP Variablen zwischen mehreren Klassen Java Basics - Anfänger-Themen 11
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
R Eine Datei mit mehreren Zeilen beschreiben Java Basics - Anfänger-Themen 5
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
H Klassen Auf eine Hashtable aus mehreren Klassen zugreifen Java Basics - Anfänger-Themen 12
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
R Objekt erstellen - Attribute mit mehreren Werten Java Basics - Anfänger-Themen 1
F Selben Code in mehreren Projekten Java Basics - Anfänger-Themen 1
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
M JUnit Testmethoden mit mehreren assert Methoden Java Basics - Anfänger-Themen 1
G Klassen Problem mit mehreren Klassen Java Basics - Anfänger-Themen 2
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
J Menü mit mehreren Bildern Java Basics - Anfänger-Themen 5
kaoZ Input/Output Einlesen von mehreren Zeilen Java Basics - Anfänger-Themen 4
T Variablen Zufallsgenerator mit mehreren Variablen Java Basics - Anfänger-Themen 3
Devil0s Entwicklung mit mehreren Leuten Java Basics - Anfänger-Themen 7
3 JLabel - Text in mehreren Zeilen zentrieren Java Basics - Anfänger-Themen 5
R Compiler-Fehler Auf selben Array in mehreren "cases" vom "Switch" zugreifen Java Basics - Anfänger-Themen 11
K Vererbung Methoden in klassen auslagern und in mehreren Klassen verfügbar machen Java Basics - Anfänger-Themen 8
D Eine Variable in mehreren "switch" Java Basics - Anfänger-Themen 24
P Liste in einer Klasse füllen und mehreren anderen Klassen lesend verwenden Java Basics - Anfänger-Themen 5
propra Objekte in mehreren Listen Java Basics - Anfänger-Themen 6
T GUI Prog. mit mehreren Klassen Java Basics - Anfänger-Themen 4
K Erste Schritte Eingabetext besteht aus mehreren Zeilen? Java Basics - Anfänger-Themen 3
D javac zum Kompilieren von mehreren Dateien Java Basics - Anfänger-Themen 6
P Auslesen von mehreren XML Dateien - Fehler Java Basics - Anfänger-Themen 11
M Java Berechnung mit mehreren Lösungen? Java Basics - Anfänger-Themen 9
T List mit mehreren gleichen Strings bereinigen Java Basics - Anfänger-Themen 4
firefexx Input/Output close() bei mehreren Streams Java Basics - Anfänger-Themen 5
L Server mit mehreren Clients Java Basics - Anfänger-Themen 25
C Methoden Methoden mit mehreren Rückgabewerten Java Basics - Anfänger-Themen 11
D OOP Objekt in mehreren Objekten Java Basics - Anfänger-Themen 3
T Hashmap mit mehreren Werten Java Basics - Anfänger-Themen 9
M Backslash aus mehreren einen machen? Java Basics - Anfänger-Themen 7
M Frame mit mehreren areas Java Basics - Anfänger-Themen 14
P Wie mehreren Threads Aufgaben zuweisen und abarbeiten lassen? Java Basics - Anfänger-Themen 15
Dit_ Aktualisieren von mehreren Views Java Basics - Anfänger-Themen 2
S Datentypen In mehreren Dateien Strings ersetzen Java Basics - Anfänger-Themen 14
B Swing Applikation mit mehreren Klassen Java Basics - Anfänger-Themen 2
J Matheaufgabe aus String mit mehreren Operatoren Java Basics - Anfänger-Themen 16
Q If-Abfrage mit mehreren Bedingungen Java Basics - Anfänger-Themen 6
D Datentypen Aufzählunsdatentyp in mehreren Klassen verwenden? Java Basics - Anfänger-Themen 10
D Datentypen Liste mit Objekten aus mehreren Klassen Java Basics - Anfänger-Themen 3
P Doppelte Einträge in mehreren Textfiles finden und ausgeben Java Basics - Anfänger-Themen 8
M String mit mehreren Zahlen in Integer-Array Java Basics - Anfänger-Themen 2
S Infos aus mehreren JVMS verbinden Java Basics - Anfänger-Themen 3
ModellbahnerTT Klassen in mehreren Projekten benutzten Java Basics - Anfänger-Themen 3
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
B Identifikation eines einzelnen Buttons aus mehreren Buttons per Schleife erzeugten Java Basics - Anfänger-Themen 4
M property mit mehreren werten Java Basics - Anfänger-Themen 3
H Vergleichen mit mehreren Textdateien Java Basics - Anfänger-Themen 2
X Konfiguration einer Anwendung aus mehreren Dateien Java Basics - Anfänger-Themen 11
K Rekusion bei Bäumen mit mehreren Blättern Java Basics - Anfänger-Themen 7
G Sortieren von mehreren klassen Java Basics - Anfänger-Themen 7
-horn- EINE setter/getter klasse aus mehreren klassen befüllen Java Basics - Anfänger-Themen 13
G art hashmap mit mehreren werten pro key Java Basics - Anfänger-Themen 2
L Zeit stoppen in mehreren Threads Java Basics - Anfänger-Themen 2
C Programm mit mehreren Dateien Java Basics - Anfänger-Themen 2
G [Threads]: Mit mehreren Threads 1 ArrayList durchlaufen Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben