Desginfrage Interface - aber wozu eigentlich?

  • Themenstarter Themenstarter Simon2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

Simon2

Gast
Guten morgen. Ich stehe vor folgender Aufgabe:
Ich erstelle eine tab-basierte SwingApplikation und werde mit recht vielen Tabs arbeiten. Jeder Tab hat Grundeigenschaften, wie:

- private int position;
- private boolean isActive;
- private JPanel content;

sowie die entsprechenden Getter und Setter. In einer Klasse, die alle Tabs verwaltet werden, ist eine ArrayList mit diesen Tabs. Es ist vorgesehen dass ich die Tabs wie angegeben realisiere und der ArrayList Objecte vom Typen AbstractTab übergebe, AbstractTab implementiert Tab. Meine Frage: Wozu das Interface? Reicht nicht allein die abstrakte Klasse. Was ist der Sinn dieses Interfaces, schließlich wird nie etwas anderes in diese Tab geladen als ein JPanel, kein anderer "Content".

Beste Grüße,
Simon
 
Die Kombination Interface + abstrakte Klasse tritt recht häufig auf.
Tritt der Fall auf, das die abstrakte Klasse schon alle sinnvollen Anwendungsfälle abdeckt, erhält man eine Interface Leiche (d.h. ein Interface das nur einmal implementiert wird).
Sofern man nicht zu viele Leichen ansammelt ist das aber kein Problem denn ein Interface bedeutet immer ein Plus an Flexibilität.
In diesem Fall:
Irgendwann willst du eben doch ein Objekt in die Liste packen das nicht von dieser abstrakten Klasse ableitet weil es schon von FooBar erbt.
Generell ist eine Implementierung zur Schnittstelle hin der bevorzugte Weg, übertreiben sollte man (wie mit allem im Leben) jedoch auch hier nicht.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben