this mit Objekt überschreiben

deathwish

Mitglied
Hallo miteinander,
ich bin gerade damit beschäftigt eine Benutzerverwaltung zu einem Multiplayer Risiko Spiel zu programmieren.
dazu gibt es die Klasse Benutzer und Benutzerverwaltung, die die Benutzer in einer Hashmap abspeichert. Die Klasse Benutzer hat einen leeren Konstruktor der sozusagen einen Gast instanziert. Dieser kann wiederum mit einer anmelden-Funktion einen Benutzer aus der Hashmap laden.
Nun hab ich das Problem, das ich die Instanz des Gastes mit der des geladenen Benutzers überschreiben muss. Kann das mit this bewerkstelligt werden oder muss ich da mein Konzept neu überarbeiten?
Danke im Vorraus
 

nrg

Top Contributor
wenn ich das richtig verstanden habe, ist doch ein gast ein benutzer, oder? dann kannst du doch einfach die Attribute der "gastinstanz" erweitern.
 

Atze

Top Contributor
ich verstehe es so, dass er zur laufzeit einen gast in einen eingeloggten benutzer "verwandeln" will, oder? warum gibst du dann nicht jedem gast die möglichkeit durch ein flag vom gast zum eingeloggten benutzer zu werden? dann brauchst du ihm anhand des flags nur mehr rechte einzuräumen.
 
D

despikyxd

Gast
this kann in java nicht überschrieben werden ...
du kannst nur this.vriable überschreiben ... *sowas geht aber glaub ich in KEIENR sprache das sich etwas selbst nicht überschreiben kann .. das wäre virus-code
 

deathwish

Mitglied
also ein Gast ist auch ein Benutzer und in der Hashmap der Benutzerverwaltung stehen Benutzerobjekte.
Wenn ich den Gast um die Attribute eines Benutzers erweitern würde, würde ich ihn effektiv eigentlich nur kopieren.
was genau ist ein Flag und wie funktioniert das ?
 

Luke_

Mitglied
Den Übergang von Gast zu einem registrierten Benutzer würde ich in die Benutzerverwaltungsklasse auslagern. Dann kannst du deinen Gast einfach überschreiben.
Oder du setzt alle Attribute einzeln in der Benutzerklasse, dann würde das Objekt aber nicht direkt aus deiner HashMap kommen...

Ein Flag wäre ein Boolean den du dann beim registrierten Benutzer auf true setzt.
 

FArt

Top Contributor
Der Benutzer ändert sich nicht. Er wechselt lediglich ein paar Attribute (z.B. Namen, den Status und seine Rollen bzgl. Authorisierung).
Eigentlich würde ich dafür grundsätzlich eine Standard-API verwenden .. Authentifizierung und Authorisierung selbst gemacht ist unnötig (JAAS, Spring Security, ...)
Wenn das Verfahren so simpel sein soll, dass es selber gestrickt gehört, dann würde ich das Dekorierer Pattern verwenden und dem Benutzer die zusätzlichen Funktionen dekorieren.
 

Atze

Top Contributor
warum musst du es denn zwangsläufig überschreiben? und "this überschreiben" versteh ich irgendwie garnicht. mit this greifst du auf attribute und methoden des aktuellen objekts zu. du kannst nicht innerhalb des aktuellen, instanzierten objekts dieses "von innen" überschreiben. ein arzt operiert sich auch nicht selbst am herzen, oder? ;)

wie sieht deine anwendung denn designtechnisch aus? hast du die user nicht in der session bzw einer anderen map? kopiere dir doch ggf nötige attribute deines gastes und erzeug damit einen vollständigen user, tausche den dann in der entsprechenden map gegen den gast aus. oder wie ich schon sagte, leg den gast direkt mit einem gleichwertigen (klasse) objekt mit weniger rechten an, und schalte ihn nach dem login einfach scharf. dann kann das alte "gast"-objekt auch in der map bleiben, du veränderst es ja nur über eine referenz. und nein, NICHT mit this!!! :) sondern von außen über einen controller, der zugriff auf die session / map hat.
 
Zuletzt bearbeitet:

deathwish

Mitglied
hier ist mein Entwurf, die Methode benutzer.anmelden() ruft die methode benutzerverwaltung.ladeBenutzer() auf, die ein Benutzerobjekt zurückgibt.

Wenn ich die Attribute vom geladenen Objekt in die Objekte des Gastes kopiere, ist das dann keine Ressourcenverschwendung, Benutzerobjekte in einerMap zu speichern ?
 

Anhänge

  • Visio-Benutzerverwaltung.pdf
    29,6 KB · Aufrufe: 13

Atze

Top Contributor
du hast doch nur benutzer!? wo sind denn die gäste? das sind doch auch objekte der benutzerklasse, oder? und du hast doch ne art kontroller, die benutzerverwaltung. die kann doch auch auf die map und damit auf die enthaltenen benutzer/gäste zugreifen und diese verändern.

wieso sollte es verschwendung sein, objekte in einer map zu speichern? das machst du doch. deine benutzerliste in der verwaltung. dort musst du nur den entsprechenden benutzer verändern, d.h. mit mehr rechten versehen. der benutzer selber sollte das imho nicht selbst mit sich tun :)
 

deathwish

Mitglied
Gäste sind in meinem Entwurf Benutzer mit leeren Attributen.
Ich verstehe noch nicht, wie die Benutzerverwaltung die Map verändern soll.
In der Map stehen nur registrierte Benutzer.
Nun sagt ein Gast zum Controller, er möchte einen Benutzer anmelden. Nachdem der Name und das Passwort gecheckt wurde, liefert der Controller dem Gast das entsprechende Benutzerobjekt.
 

Atze

Top Contributor
hört sich vom design total merkwürdig an :) aber gut, wenn du es so willst. dann muss dein gast halt das benutzerobjekt in die map bekommen. ich weiß jetzt auch nicht wie du das anstellen willst, weil das design imho n bischen verkorkst ist :/
 

Luke_

Mitglied
wie schon gesagt würde ich die anmeldung in die benutzerverwaltung auslagern. dann greift die anmeldung, die bisher auf den benutzer zugreift auf die benutzerverwaltung zu, sucht sich aus der hashmap den user über den namen und prüft das passwort.

ich glaube, du setzt einfach an der falschen stelle an... bevor du eingeloggt bist kannst du ja noch nicht in dem eigentlichen benutzer drin sein, also gehst du erstma über die verwaltung.

@atze nen verbesserungsvorschlag wär ja schon sinnvoller, als einfach nur zu sagen, dass es quatsch ist.
 

Atze

Top Contributor
ja, ich habe doch deutlich gesagt dass er mit dem controller arbeiten soll, von außen eben. nicht versuchen sich über das objekt selbst anzumelden :) mein reden :)
 

deathwish

Mitglied
naja, beratungsresistent bin ich nicht, aber ich hab die Vorschläge nicht ganz verstanden.
Aber ich glaube jetzt hab ich es:
Statistik hänge ich an die Anmeldung, die Anmeldung wiederum an die Benutzerverwaltung.
Wenn sich jetzt ein Benutzer erfolgreich anmeldet, bekommt ein Attribut ( Benutzerdaten oder so) das enstprechende Anmeldungsobjekt zugewiesen.
Ich probier das mal aus und werde euch dann meine Ergebnisse mitteilen :)
Vielen Dank an alle :D

PS: ich hab mir die JAAS Api mal angesehen aber bin da noch nicht richtig durchgestiegen. Könnte ich die überhaupt so verbiegen, das sie mir hier in meinem Fall weiterhilft ?
 

deathwish

Mitglied
ich hab jetzt ein neues Konzept gemacht mit dem ich Benutzer wunderbar an- und abmelden kann. Allerdings bin ich noch nicht 100 % glücklich.
Deswegen wäre jetzt meine Frage, wie mein Konzept mit einem Dekorierer Pattern aussehen würde.
Verstehe ich das richtig, das die Komponente die Benutzerverwaltung, der Dekorierer das Benutzerprofil, die konkreten Dekorierer das Admin- und das Standardprofil und die konkrete Komponente der Benutzer wäre ? Allerdings wäre ja dann die Benutzerverwaltung ein Interface ...
 

Anhänge

  • Visio-Benutzerverwaltung alternativ.pdf
    29,3 KB · Aufrufe: 9
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Objekt überschreiben Allgemeine Java-Themen 6
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
Maxi-JOO Klassen Dummy Objekt in anderen Constructor übergeben Allgemeine Java-Themen 5
el_niiinho13 Objekt auf der Konsole ausgeben lassen Allgemeine Java-Themen 8
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
A Objekt aus anderen Objekten machen Allgemeine Java-Themen 8
SaftigMelo In einem Winkel Objekt bewegen Allgemeine Java-Themen 2
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
J Objekt in Bytestream umwandeln Allgemeine Java-Themen 12
J Wie kann ich von Vornherrein einen Fokus auf ein Objekt entfernen? Allgemeine Java-Themen 3
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
S Variable als Objekt Name Allgemeine Java-Themen 3
D Input/Output Zwischen zwei ID-Räumen unterscheiden und Objekt löschen Allgemeine Java-Themen 16
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
T Objekt in Array packen Allgemeine Java-Themen 6
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
S Neues Objekt darstellen Allgemeine Java-Themen 4
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
M Klassen Objekt weiter geben Allgemeine Java-Themen 1
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
S Applet Überprüfen ob ein Objekt angeklickt wurde Allgemeine Java-Themen 2
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
R Objekt funktioniert nicht auf iOS Allgemeine Java-Themen 15
K Textdatei als Objekt Allgemeine Java-Themen 4
Viktim Classenname zu Objekt Allgemeine Java-Themen 4
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
O Klassen Bruch im gleichen Objekt Speichern Allgemeine Java-Themen 1
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
C Liste checken auf MINDESTENS ein Objekt | Bukkit Allgemeine Java-Themen 3
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
D Objekt entlang eines Funktionsgraphens bewegen Allgemeine Java-Themen 6
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
J OOP Überwachen, ob ein Objekt erzeugt wird Allgemeine Java-Themen 9
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
F Neues Objekt aus .CSV definition Allgemeine Java-Themen 3
K Methoden Objekt wird nicht erkannt Allgemeine Java-Themen 11
P Objekt mit verschiedenen Datentypen Allgemeine Java-Themen 5
T Objekt kontaktiert seinen "erzeuger" Allgemeine Java-Themen 5
S Objekt orientierte Programmierung Allgemeine Java-Themen 7
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
H JavaFX Von einer Methode auf stage-Objekt zugreifen Allgemeine Java-Themen 3
T WeakReference/PhantomReference: Mitbekommen WELCHES Objekt nun GC'ed wird Allgemeine Java-Themen 2
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
P Konsoleneingabe übernehmen und Objekt instanzieren. Allgemeine Java-Themen 5
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
L Klassen Polymorphie:2 Attribute gleichen Namens in einem Objekt Allgemeine Java-Themen 6
P Objekt Array in Datei Speichern Allgemeine Java-Themen 3
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
V Objekt löschen Allgemeine Java-Themen 7
A OOP Wie auf Objekt der Superklasse zugreifen? Allgemeine Java-Themen 6
S Datei in File-Objekt mit UTF-8 einlesen Allgemeine Java-Themen 2
M neues Objekt speichern, nicht Referenz Allgemeine Java-Themen 10
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
F Objekt einer Datei verschieben, aber Verzeichnispfad fehlt Allgemeine Java-Themen 6
C Objekt Typ herausfinden Allgemeine Java-Themen 5
E Objekt beim Erzeugen in ArrayList Allgemeine Java-Themen 9
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
M Objekt aus Liste in Liste suchen/löschen Allgemeine Java-Themen 6
D Eigenen Objekt Pool Allgemeine Java-Themen 15
C blueJ: Objekt wird nicht in Objektleiste angezeigt Allgemeine Java-Themen 8
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
sambalmueslie Benachrichtigung bei neuer Objekt-Instanz Allgemeine Java-Themen 5
U Konstante in Objekt definieren Allgemeine Java-Themen 6
R Synchronized - auf welchem Objekt Allgemeine Java-Themen 16
E Objekt erstellen Allgemeine Java-Themen 7
M Timer von nicht existiertem Objekt stopen Allgemeine Java-Themen 5
M Swing-Frontend abhängig von ausgewähltem Objekt Allgemeine Java-Themen 4
J Lebt das Objekt noch?? Allgemeine Java-Themen 12
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
S Performance Frage: Objekt oder static? Allgemeine Java-Themen 33
B Speicherverbrauch Objekt-Referenz Allgemeine Java-Themen 11
D Browser-Objekt erzeugen Allgemeine Java-Themen 8
B FileWriter / FileReader testen / Mock-Objekt für Unit Tests? Allgemeine Java-Themen 6
A Iterationen einer XML-Datei in einem Objekt sichern Allgemeine Java-Themen 5
R Objekt zur Laufzeit zerstören? Allgemeine Java-Themen 12
hdi Frage zur Objekt Initialisierung Allgemeine Java-Themen 4
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
T Serialisiertes Objekt über Socket nachladen Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben