Was ist ein Adapter Pattern bzw. eine Adapter-Klasse?
Das Beispiel ist bewusst sehr einfach gehalten. Ausgangspunkt
für die Betrachtung ist die Klasse MacherClass
,
die lediglich eine Methode machEtwas()
mit einer
Ausgabe auf die Konsole enthält.
public class MacherClass { public void machEtwas() { System.out.println("Olle Kamellen!"); } }
Die Funktionalität, die übernommen werden soll,
befindet sich in Form der Methode machAnderes()
im
Interface AdapterInterface
.
public interface AdapterInterface { public void machAnderes(); }
Die eigentliche Adapter-Klasse AdapterImpl
implementiert dieses Interface und erweitert die Klasse MacherClass
.
In der Konkretion der Interface-Methode machAnderes()
findet der Aufruf von MacherClass#machEtwas()
statt
und kann diese so mit neuen Funktionalitäten kombinieren.
public class AdapterImpl extends MacherClass implements AdapterInterface { @Override public void machAnderes() { System.out.println("Mach etwas:"); machEtwas(); } }
Der Aufruf von AdapterImpl#machAnderes()
zeigt dies
anhand der Ausgabe auf der Konsole.
public class AdapterBeispiel { public static void main(String[] args) { new AdapterImpl().machAnderes(); // Mach etwas: Olle Kamellen! } }
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.