Hallo,
ich möchte folgende Struktur umsetzen:
CardReader und Formatter sind Interfaces.
AbstractReaderX und AbstractFormatterX.X sind abtrakte Klassen.
ConcreteReaderX und ConcreteFormatterX.X sind Klassen die die jeweiligen abstrakten Klassen implementieren sollen.
Natürlich möchte ich hier das ein ConcreteReader1 nur Objekte vom Typ ConcreteFormatter1.1.X annimmt (Analog auch der ConcreteReader2)
Ich würde bei dem Klassendesign diese Einschränken über Generic Types abbilden.
D.h. die Klasse ConcreteReader würde ich so definieren
Mich würde interessieren ob ein solchen Vorgehen als "sauberes Vorgehen" zu definieren wäre. Oder ob es komplett die Idee der Objektorientierung sprengt.
ich möchte folgende Struktur umsetzen:
CardReader und Formatter sind Interfaces.
AbstractReaderX und AbstractFormatterX.X sind abtrakte Klassen.
ConcreteReaderX und ConcreteFormatterX.X sind Klassen die die jeweiligen abstrakten Klassen implementieren sollen.
Natürlich möchte ich hier das ein ConcreteReader1 nur Objekte vom Typ ConcreteFormatter1.1.X annimmt (Analog auch der ConcreteReader2)
Ich würde bei dem Klassendesign diese Einschränken über Generic Types abbilden.
D.h. die Klasse ConcreteReader würde ich so definieren
Code:
public class ConcreteReader1<T extends AbstractFormatter1.1> extends AbstractReader<T> {
@Override
public void setFormatter(T formatter) {
// TODO Auto-generated method stub
}
}
Mich würde interessieren ob ein solchen Vorgehen als "sauberes Vorgehen" zu definieren wäre. Oder ob es komplett die Idee der Objektorientierung sprengt.
Anhänge
Zuletzt bearbeitet: