Pattern zum Erweitern existierender Objekte

Incubant

Mitglied
Hallo,

ich hab ein Problem mit Java und finde keinerlei Lösung und frag mich schon, ob mein OOP Verständniss generell eine Lücke aufweißt.

Ich versuche gerade mein eigenes Layout zu Programmieren, und dabei implementiere ich das LayoutManager2 interface. Jetzt kommen mit addLayoutComponent(Component, Constraints) neue Komponenten hinzu, welche ich in ein neues Objekt wegsichern möchte, aber ich kenne keinen Weg diese schön in ein neues "erweitertes" Component Objekt wegzupacken. Nachfolgend ein Auszug, andem ich das nochmal genauer Erläutern will

Java:
  private class LayoutComponent implements Comparable {
    Component component;
    CellConstraints constraints;

    public LayoutComponent(Component component, CellConstraints constraints) {
      this.component = component;
      this.constraints = constraints;
    }

    public int compareTo(Object o) {
      return constraints.compareTo(((LayoutComponent) o).constraints);
    }
  }

Jetzt würde ich gerne auf das LayoutComponente genauso zugreifen wie auf die Component. Ich will quasi das existierende Component Objekt in mein erweitertes LayoutComponent casten, weiß nur nicht wie. Ich hab schon wild sämtliche GOF Patterns durchstöbert, hab aber nichts gefunden. Am ehesten würd ich sagen, dass das "Stellvertreter (Proxy)" Pattern passt, find da aber auch nichts genaueres.

Ich hoffe mein Problem ist damit klar und ich denk, dass das doch eigentlich ein gängiges Problem sein sollte, und es da schon Lösungen geben sollte (deshalb die Patterns).

Vielleicht hat ja einer von euch schon ähnliches gelöst, und weiß wie man es prinzipiell Lösen muss.

Vielen Dank und viele Grüße
Bastian
 

Michael...

Top Contributor
Weiss nicht ob ich Dich richtig verstanden habe, aber alle LayoutManager arbeiten mit Objekten vom Typ Component. Deine Klasse muss also von dieser oder einer Ihrer Subklassen erben.
 

Incubant

Mitglied
Danke,

ich denke das Component erben ist der erste Schritt, aber wenn ich das Component in meiner LayoutComponent geerbt habe, habe ich ja noch nicht die bestehenden Daten bzw. Informationen (wie zB. Size, Location usw.) in dem geerbeten Objekt. Gibt es eine Möglichkeit die Daten in das geerbete Objekt zu übernehmen?

So in der Art wie in Zeile 5:
Java:
  private class LayoutComponent extends Component implements Comparable {
    CellConstraints constraints;
 
    public LayoutComponent(Component component, CellConstraints constraints) {
      this = component;
      this.constraints = constraints;
    }
 
    public int compareTo(Object o) {
      return constraints.compareTo(((LayoutComponent) o).constraints);
    }
  }
 

KrokoDiehl

Top Contributor
Ich bin mir auch nicht wirklich sicher, ob ich dich verstehe... du willst deine LayoutComponent wie eine java.awt.Component benutzen, aber nicht von ihr erben?
Das geht schonmal gar nicht... aber es gibt Alternativen, z.B. über Delegates:
Java:
class LayoutComponent extends Component
{
    private final Component delegate;

    public LayoutComponent(Component comp)
    {
        delegate = comp;
    }

    @Override
    public int getWidth()
    {
        return delegate.getWidth();
    }

    // usw mit allem Component-Methoden
}

Das sind halt ziemlich viele Methoden, die du dann umlenken musst... :)
 

Incubant

Mitglied
ok, dann gehts nur mit überschreiben und deligieren sämtlicher Methoden. Genau das wollte ich mir eigentlich ersparen. Theoretisch will ich ja nicht meine LayoutComponente anpassen müssen, wenn Oracle die Component umbaut oder erweitert. Das verflixte und wirklich hässliche daran ist ja vorallem, dass ich durch die Vererbung alle "funktionslosen" Methoden automatisch bekomme und es von aussen nicht sichtbar ist, ob diese Methode implementiert bzw. delegiert ist oder nicht. Ist zum Beispiel eine Methode nicht delegiert, arbeitet diese mit der LayoutComponent und die delegierten arbeiten mit dem Member-Objekt component, und keiner bekommt irgendwelche hinweise, dass sie auf verschiedenen objekten arbeiten.

Das find ich ziemlich riskant, da find ich es fast besser wenn die LayoutComponent nichts ableitet und das Component Objekt public ist, weil so kann ich nichts vergessen.

Ich dachte da könnte es einen Trick geben, den ich nicht kenne.

Vielen Dank für die Antworten, dachte schon dass ich irgend einen Jederman-Java-OOP-Mechanismus nicht kenne, aber leider scheint es diesen nicht zu geben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
mihe7 equals und instanceOf pattern matching Allgemeine Java-Themen 9
L Pattern Eventhandler Allgemeine Java-Themen 5
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Z MVC Pattern - sinnvolle Integration Allgemeine Java-Themen 6
J Meinung zum verwendeten Design Pattern Allgemeine Java-Themen 4
Kirby.exe Filename nach bestimmtem Pattern durchsuchen Allgemeine Java-Themen 5
Meeresgott Best Practice "Spezifisches" Factory Pattern ? Allgemeine Java-Themen 1
H Strategy Pattern - changeColor() Methode - input rgd oder hex einlesen Allgemeine Java-Themen 1
M Vaadin MVP Pattern Allgemeine Java-Themen 1
N Java MVC Pattern richtig anwenden Allgemeine Java-Themen 24
M OOP Design Pattern - "extends Observable implements Observer" Allgemeine Java-Themen 0
K Factory Pattern: Mit Generics umgehen Allgemeine Java-Themen 6
perlenfischer1984 Welches Design Pattern ist geegneit. Allgemeine Java-Themen 7
perlenfischer1984 Hilfe bei Design (Pattern) Allgemeine Java-Themen 5
J Compilerfehler bis in java.util.regex.Pattern... Allgemeine Java-Themen 2
B MVC-Pattern größeres Beispiel Allgemeine Java-Themen 16
GreenTeaYT Verstehe nicht ganz das Observer Pattern in einer Arrayliste? Allgemeine Java-Themen 3
L Erste Schritte Java Date Format Pattern bestimmten Allgemeine Java-Themen 2
D Pattern mit Pattern vergleichen Allgemeine Java-Themen 3
D OOP Design Pattern für GUI - Datenbank Anwendung Allgemeine Java-Themen 1
S Hilfe bei geeignetem Pattern (Decorierer) Allgemeine Java-Themen 2
F Welches Design Pattern? Allgemeine Java-Themen 3
J Pattern aus String entfernen Allgemeine Java-Themen 2
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
D Variablen zur Laufzeit global speichern (Registry Pattern?) Allgemeine Java-Themen 6
Rudolf State Pattern als Enum? Allgemeine Java-Themen 10
M massenhaft verschiedene Date-Pattern Allgemeine Java-Themen 3
Guybrush Threepwood Pattern gesucht: Punkt ohne Leerzeichen dahinter Allgemeine Java-Themen 3
turmaline OOP Decorater Pattern für Varifikationsverhalten Allgemeine Java-Themen 13
T HTML Tag Position mittels Pattern ermitteln Allgemeine Java-Themen 7
X Datentypen Prozentualer Abgleich zwischen 2 Strings (Pattern?) Allgemeine Java-Themen 3
H Pattern.compile Syntax Allgemeine Java-Themen 15
B RegEx: (Um-)formulieren eines Pattern zur Identifizierung komplexer URLs Allgemeine Java-Themen 7
D [Drag&Drop] Design-Pattern-Frage Allgemeine Java-Themen 4
T Pattern für Benutzer-Gruppen, RMI Allgemeine Java-Themen 5
E Super erzwingen, konzept/pattern gesucht. Allgemeine Java-Themen 8
H Problem mit der Klasse Pattern - Regulärer Ausdruck Allgemeine Java-Themen 2
Eldorado Meinung zu einem abgewandelten MVC-Pattern Allgemeine Java-Themen 2
R Matcher - Pattern mit belibigem Anfang Allgemeine Java-Themen 2
H Bestimmten String mit Pattern und Matcher herauslesen => kein erfolg Allgemeine Java-Themen 9
I Template Method pattern mit "geschützten Methoden" Allgemeine Java-Themen 5
T Pattern: Passive View Allgemeine Java-Themen 2
K Verständnisprobleme bei Observer-Pattern mit größerem Datenmodell Allgemeine Java-Themen 32
T Pattern: Greedy, Reluctant, Possessive Allgemeine Java-Themen 4
S Hilfe bei Pattern Allgemeine Java-Themen 5
N Registry Pattern Allgemeine Java-Themen 7
Tandibur Denkfehler bei Pattern.matches? Allgemeine Java-Themen 3
Tandibur pattern dynamisch vorkompilieren Allgemeine Java-Themen 9
A Observer Pattern: feuern bei neuer Referenz-Zuweisung? Allgemeine Java-Themen 8
N Pattern Allgemeine Java-Themen 11
Iron Monkey Pattern - Matcher - Problem Allgemeine Java-Themen 3
ruutaiokwu welches design pattern? frage an die oo-experten unter euch... Allgemeine Java-Themen 3
G Accordion Design Pattern Frage Allgemeine Java-Themen 2
hdi Hilfe beim Design (Stichwort OO, Pattern, ...) Allgemeine Java-Themen 11
U Verständnisschwierigkeiten Observer Pattern Allgemeine Java-Themen 18
H2SO3- String(pattern) von SimpleDateFormat auslesen Allgemeine Java-Themen 7
M Problem mit Pattern Allgemeine Java-Themen 3
N Welches design pattern? Allgemeine Java-Themen 8
B Pattern gesucht, Programm Optionen, Casten vermeiden Allgemeine Java-Themen 3
D Welches Pattern kann ich nutzen? Allgemeine Java-Themen 9
J Suche regex-Pattern fuer Liste von Zahlen zwischen 0-100 Allgemeine Java-Themen 6
G Sequenzdiagramm Dao Pattern Allgemeine Java-Themen 3
D Observer/Observable Pattern vs. Listener-Konzept Allgemeine Java-Themen 4
S regex-Pattern Ausdruck negieren Allgemeine Java-Themen 2
J Pattern eines Textes Allgemeine Java-Themen 4
M Java Garbage Collector Frage (Singleton Pattern) Allgemeine Java-Themen 13
Y Pattern Problem Allgemeine Java-Themen 2
G UML-Diagramme mit DAO Pattern Allgemeine Java-Themen 7
S Pattern regex Allgemeine Java-Themen 2
G Composite, Design Pattern, printTree Allgemeine Java-Themen 42
J Regex Pattern Problem Allgemeine Java-Themen 12
P MVC Pattern Allgemeine Java-Themen 31
C Pattern für Kommunikation gesucht Allgemeine Java-Themen 3
G Frage zu MVC Pattern Allgemeine Java-Themen 6
J Pattern und Regex Allgemeine Java-Themen 2
L Wie Pattern anwenden um Cipher zu nutzen Allgemeine Java-Themen 2
S Singleton Pattern mit Generics Allgemeine Java-Themen 4
M MVC Design Pattern - Verständniss Fragen Allgemeine Java-Themen 3
F Typüberprüfung in Superklasse - geeignetes Pattern? Allgemeine Java-Themen 11
M Java Pattern hilfe Allgemeine Java-Themen 6
N Observer Pattern Allgemeine Java-Themen 2
G Problem mit MVC-Pattern (Controller als anonyme Unterklasse) Allgemeine Java-Themen 2
F Design Pattern zur Realisierung von Mehrfachvererbung? Allgemeine Java-Themen 8
M Pattern aus Properties Allgemeine Java-Themen 3
I Composite Pattern für Ausgabe von Ausdruck Allgemeine Java-Themen 3
G mit Pattern strings filtern ein kleines problemchen ;) Allgemeine Java-Themen 2
M nach einem Pattern splitten Allgemeine Java-Themen 2
F Composite Pattern in Java? Allgemeine Java-Themen 1
G problem mit dem observer pattern Allgemeine Java-Themen 3
C Matcher/Pattern ersetzten für JDK 1.3 Allgemeine Java-Themen 2
M Pattern: Summary of regex constructs: Backslash Allgemeine Java-Themen 2
G Scanner und Abbruchbedingung/Pattern Allgemeine Java-Themen 2
F suche im Classpath mit Pattern *.gif Allgemeine Java-Themen 16
G Frage zum Observer Pattern Allgemeine Java-Themen 4
D Design Pattern: Singleton Allgemeine Java-Themen 4
M Pattern, Matcher, Split Allgemeine Java-Themen 2
D Erste Schritte Liste erweitern Allgemeine Java-Themen 11
Bluedaishi Zeile um zeichen erweitern Allgemeine Java-Themen 9
J Application mit PLugin erweitern Allgemeine Java-Themen 2
A Java Kenntnisse erweitern Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben