Interface extends Observable

Status
Nicht offen für weitere Antworten.

Elephant

Aktives Mitglied
Hallo,

ein Interface kann ja keine Klasse erweitern. Also

Code:
public interface Model extends Observable { ... }

funktioniert nicht.

Es wäre aber irgendwie gut, wenn man das doch so ähnlich machen könnte, denn wenn man z.B. die Models (beim MVC-Prinzip) austauschen möchte, ist es doch einfacher wenn man z.B. an die View und den Controller nur ein Interface übergibt (also, hab ich mir so gedacht). Aber ein Model muss meistens Observable erweitern.

Fällt vielleicht jemandem etwas dazu ein oder ist mein Denkansatz verkehrt?

Edit: Mir fällt grad selber noch was dazu ein. Es müsste mit einer abstrakten Klasse gehen, die Observable erweitert und alle Methoden die sonst im Interface stehen als abstrakte Methoden beinhaltet. Ist das richtig bzw. sinnvoll?
 
R

Roar

Gast
Elephant hat gesagt.:
Es wäre aber irgendwie gut, wenn man das doch so ähnlich machen könnte, denn wenn man z.B. die Models (beim MVC-Prinzip) austauschen möchte, ist es doch einfacher wenn man z.B. an die View und den Controller nur ein Interface übergibt (also, hab ich mir so gedacht). Aber ein Model muss meistens Observable erweitern.
???:L wat?
ja, das ist richtig so dass man als model am besten nur mit interfaces arbeitet, aber was hindert dich daran dein model von oberservable erben zu lassen?
 

Elephant

Aktives Mitglied
Also, wenn ich schreibe

Code:
public interface Model extends Observable {...}

Kommt bei mir immer die Fehlermeldung für diese Zeile:

interface expected here

Ist ja auch irgendwie logisch (also denk ich jetzt mal), dass ein Interface nicht von einer Klasse erben kann. (Weiß es aber nicht genau).

Und wenn ich jetzt die konkrete Model-Klasse von Observable erben lasse, dann kann ich mich in der View, doch nicht als Observer bei dem Model anmelden, wenn das nicht schon im Interface festgelegt ist, sondern nur in der konkreten Klasse.

Also wahrscheinlich bringe ich jetzt einiges völlig durcheinander. Aber vielleicht kann jemand Licht ins Dunkel bringen.
 
R

Roar

Gast
nene, so geht das natürlich nicht. ist auch nicht üblich, dass models oder überhaupt andere klassen die klassen observable und observer benutzen, weiß gar nicht wozu die konkret implementiert wurden, wo das doch nur nen pattern ist :s aber ladde:
dein model interface ist im grunde nur eine für dich sinnvolle implementierung von dem pattern. mit der klasse observable musst du nix anfange, wenn du nix besseres zu tun hast kannst du sie ja benutzen :)

edit: hier kommt noch was...
edit2: oder auch nich
 

AlArenal

Top Contributor
Elephant hat gesagt.:
Also, wenn ich schreibe

Code:
public interface Model extends Observable {...}

Kommt bei mir immer die Fehlermeldung für diese Zeile:

interface expected here

Natürlich steht das da!
Ein Interface kann nur ein Interface erweitern, aber keine Klasse und Observable ist nunmal eine Klasse und kein Interface.
 

Elephant

Aktives Mitglied
O.k., danke an Euch.

Ich hab das jetzt so verstanden, dass man also am besten selbst eine 'Observable - Observer - Beziehung' implementiert, indem man Methoden wie addModelListener(...) und removeModelListener(...) etc. selbst implementiert (und die 'Methoden-Definitionen' dazu im Model-Interface hat) und dann ensprechend ein Interface ModelListener schreibt, das dann von der View-Klasse implementiert wird. Hoffe das stimmt jetzt so in etwa.
 
B

bygones

Gast
naja - ich bin der Meinung, wenn sich das vorhandene System Observable eigent, nimm das - warum etwas neu erfinden, was schon gut implementiert ist.....
 

SebiB90

Top Contributor
deathbyaclown hat gesagt.:
naja - ich bin der Meinung, wenn sich das vorhandene System Observable eigent, nimm das - warum etwas neu erfinden, was schon gut implementiert ist.....
weil man sowas schnell selbst machen kann und dann auf seine bedürfnisse anpassen kann
 
B

bygones

Gast
SebiB90 hat gesagt.:
deathbyaclown hat gesagt.:
naja - ich bin der Meinung, wenn sich das vorhandene System Observable eigent, nimm das - warum etwas neu erfinden, was schon gut implementiert ist.....
weil man sowas schnell selbst machen kann und dann auf seine bedürfnisse anpassen kann
ein richtiges Threadsicheres adden / removen oder benachritigen einfach so sicher selber ? na gut.

Da fällt mir ein - Collection ist auch so n ding... Braucht man dann auch net - geht auch einfach und schnell selber machen ???:L
 

Elephant

Aktives Mitglied
Es ist einfach so, dass ich dieses 'Observer-Pattern' für viele Model-Klassen brauche, weil ja jedes Model eigentlich 'beobachtbar' sein muss, und ich viele verschiedene Model-Klassen bzw. Interfaces habe.

Und jetzt muss ich für jedes Model-Interface immer alle Methoden die für dieses 'Observer-Pattern' wichtig sind mit in die konkrete Model-Klasse implementieren obwohl ich gar kein angepasstes Pattern unbedingt brauche. Deshalb habe ich gedacht, es gibt eine einfacherer Möglichkeit eine konkrete Implementiertung des Patterns wiederzuverwenden, aber gleichzeitig Interfaces zu gebrauchen.
 

AlArenal

Top Contributor
Warum versteckst du kein Oberservable in deinen Klassen und sprichst es als Delegate an. Die Methoden aus Observable kannste ja in nem eigenen Interface definieren.
So haste dein Interface und musst kein Observable selbst bauen, dass du ja in dem Falle auch erst als Baisklasse entwickeln müsstest und entweder mit Vererbung oder ner abstrakten Klasse arbeitest...
 

Elephant

Aktives Mitglied
@AlArenal
Mmh, Entschuldigung wenn ich da nochmal nachfrage. Irgendwie hab ich leider nicht verstanden, was Du genau meinst.


Edit: Ich glaub jetzt hab ich's doch kapiert. Du meinst praktisch ich schreibe in das Model-Interface die Methodenköpfe für z.B. addListener und removeListener. Und die konkrete Model-Klasse erweitert dann Observable und ich 'rufe' dann in diesen Methoden (also z.B. addListener, removeListener) die entsprechenden Methoden der Observable-Klasse auf. Das hört sich, glaub ich, wirklich gut an.
 

AlArenal

Top Contributor
Deine Model-Klassen können entweder Observable erweitern, oder aber haben alle einen Member, der eine Instnaz von Observable ist und an den du über die Methoden aus dem Interface die Aufrufe weiterleitest. So würde man es bei nachträglichen Änderungen am Design machen, wenn man eine Klasse nicht direkt von Observable ableiten kann, z.B. weil sie auf ner anderen Klasse basiert, die aus ner externen Lib oder so kommt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Implements<-->extends und Interface Java Basics - Anfänger-Themen 10
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Abstrakt oder Interface Java Basics - Anfänger-Themen 3
Say public/default Interface Java Basics - Anfänger-Themen 9
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
J Interface Comparable<T> Java Basics - Anfänger-Themen 10
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
D Interface Verständisfrage Java Basics - Anfänger-Themen 8
U Interface | constructor injection Java Basics - Anfänger-Themen 5
J Interface Interface korrekt implementieren Java Basics - Anfänger-Themen 5
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
T Interface Map und Map.Entry Java Basics - Anfänger-Themen 4
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
I JSON und Interface Java Basics - Anfänger-Themen 3
Kotelettklopfer Kleines Testprogramm mit Interface und einer Usereingabe Java Basics - Anfänger-Themen 16
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
L Interface & Comparable Java Basics - Anfänger-Themen 15
T Interface Java Basics - Anfänger-Themen 0
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
H Interface Java Basics - Anfänger-Themen 2
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
T Vererbung Interface Java Basics - Anfänger-Themen 5
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
B Erste Schritte Wie definiere ich in Java ein Interface? Java Basics - Anfänger-Themen 6
L OOP Interface Prinzip? Java Basics - Anfänger-Themen 6
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
A Frage zu Interface Java Basics - Anfänger-Themen 16
J Interface Java Basics - Anfänger-Themen 3
W Interface Java Basics - Anfänger-Themen 1
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
Shams Kann man von einem Interface aus auf die dieses implementierende Klasse zugreifen? Java Basics - Anfänger-Themen 4
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
J Frage zu dem Thema interface Java Basics - Anfänger-Themen 5
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
S Interface-Methode abrufen? Java Basics - Anfänger-Themen 2
P Vererbung Klasse erbt von abstrakter Klasse implementiert Interface Java Basics - Anfänger-Themen 2
M Konstanten in einem Interface definieren Java Basics - Anfänger-Themen 1
P interface Java Basics - Anfänger-Themen 1
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
M Interface als Datentyp Java Basics - Anfänger-Themen 12
K Interface Methoden überschreiben Java Basics - Anfänger-Themen 1
C Klassendesign / Wann Interface implementieren und wann Klassen vererben? Java Basics - Anfänger-Themen 3
A Interface in Collection (Liste) angeben Java Basics - Anfänger-Themen 2
G Interface klasse Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben