Anonymous Classes und UML

Status
Nicht offen für weitere Antworten.

Evolver

Bekanntes Mitglied
Also ich habe Fragen zu anonymen Klassen.
Code:
AnyExistingClass myObject = new AnyExistingClass()
{
    // "Erweiterungen" der existierenden Klasse
}

1. Gibt es noch andere Formen außer der obigen, anonyme Klassen zu definieren?
2. Sehe ich es richtig, dass eine anonyme Klasse immer eine Superklasse benötigt (das wäre hier die fiktive Klasse AnyExistingClass)? Oder kann sie auch irgendwie "frei" definiert werden?
3. Ich arbeite ja an einem Reverse-Engineering-Projekt. Deshalb: Wie würdet ihr die anonyme Klasse im Klassendiagramm darstellen? Garnicht? Oder als von der Basisklassen erbend mit einem künstlichen Namen? Oder anders?
 
R

Roar

Gast
1. nein
2. jede klasse braucht eine superklasse, damit erübrigt sich das wohl ;)
3. eine darstellung im klassendiagramm wär sinnlos
 

Evolver

Bekanntes Mitglied
2. jede klasse braucht eine superklasse
Nungut, aber aber bei expliziten Klassendefinitionen kann ich mir eine explizite Angabe auch ersparen, bzw. könnte es sich bei AnyExistingClass auch um ein Interface handeln, das implementiert wird. Daher die Frage.


3. eine darstellung im klassendiagramm wär sinnlos
Könntest du bitte erläutern, warum du dieser Meinung bist? Gerade falls es sich um eine Implementierung eines Interfaces handelt - wäre dann eine Darstellung nciht wichtig?
 
R

Roar

Gast
2. weil dann automatisch von Object abgeleitet wird, das gilt auch für anonyme klassen. eine anonyme klasse die von object erbt/ kein interface implementiert macht aber auch wenig sinn ;)
3. nein: was sollte jemand anderes denn mit der information anfangen, dass bei dir irgendwo eine anonyme klasse steht. entweder die anonyme klasse ist eine normale membervariable oder innerhalb einer methode. Beim ersteren wird es wie jeder andere member auch angezeigt und beim letzteren ist es ein implementierungsdetail was niemand anderes wissen will/möchte/darf/braucht. du gibst ja auch keine lokalen variablen in einem klassendiagramm an
 

Evolver

Bekanntes Mitglied
Wäre aber eine UML-Modell ohne die anonyme Klasse nicht unvollständig? Bleiben wir bei dem implementierten Interface:

implementierung.gif


Würde ich die fehlende anonyme Klasse nicht ein unvollständiges Modell darstellen: Ein benutztes Interface ohne, dass es irgendwo implementiert wird?

[...] Bei genauerer Überlegung frage ich mich gerade, ob die erste Darstellung tatsächlich das gleiche ausdrückt, wie die zweite, oder viel allgemeiner ist und keinen direkten Zusammenhang zwischen AnonymeKlasse und BenutzerKlasse herstellt?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben