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.