Das Adapter-Muster (auch bekannt als Wrapper-Muster) ist ein Entwurfsmuster aus der Softwareentwicklung, das zur Lösung von Problemen eingesetzt wird, wenn zwei bestehende Komponenten nicht direkt miteinander kommunizieren können, weil ihre Schnittstellen nicht kompatibel sind.
Das Hauptziel des Adapter-Musters besteht darin, eine Brücke zwischen den beiden inkompatiblen Schnittstellen zu schlagen, ohne dass einer der vorhandenen Codes geändert werden muss. Es ermöglicht die Zusammenarbeit von Klassen, die sonst nicht zusammenarbeiten könnten, indem es einen speziellen Adapter zwischen ihnen einsetzt.
Es gibt zwei Haupttypen von Adaptern:
Klassenadapter: Dieser Typ verwendet Vererbung, um die vorhandene Schnittstelle der Zielklasse anzupassen und sie mit der Schnittstelle der Adaptee-Klasse zu verbinden.
Objektadapter: Dieser Typ verwendet Komposition und hat eine Referenz auf die Adapter-Klasse, um ihre Funktionalität durch Delegation an den Adaptee bereitzustellen und gleichzeitig die Schnittstelle des Targets anzubieten.
Ein einfaches Beispiel für das Adapter-Muster könnte sein, wenn eine bestehende Anwendung eine bestimmte Datenquelle über eine spezifische Schnittstelle verwendet, und Sie eine neue Datenquelle haben, die eine andere Schnittstelle bereitstellt. Sie könnten einen Adapter erstellen, der die neue Datenquelle an die Schnittstelle der bestehenden Anwendung anpasst, sodass die Anwendung nahtlos mit der neuen Datenquelle arbeiten kann, ohne ihre Kernlogik zu ändern.
Das Adapter-Muster ist ein flexibles und leistungsfähiges Muster, das die Wiederverwendbarkeit von Code fördert und die Interoperabilität zwischen unterschiedlichen Komponenten erleichtert. Es wird häufig in der objektorientierten Softwareentwicklung eingesetzt.