Klassifizierung  | 
       
objektbasiertes Strukturmuster
  | 
        | 
       
klassenbasierter Adapter: 
 Vererbung anstatt Benutzung
  | 
  |  | 
     
     
       Zweck  | 
       
Schnittstellenanpassung 
Kooperation von Klassen mit inkompatiblen Schnittstellen
  | 
  |  | 
     
     
       Alias  | 
       
Objekt-Adapter, wrapper
  | 
  |  | 
     
     
       Motivation  | 
       
Wiederverwendung von Standard-Bibliotheksfunktionen in einem eigenen Umfeld
  | 
  |  | 
     
     
       Beispiel  | 
        | 
  |  | 
     
     
       Anwendbarkeit  | 
       
         | 
     
     
        | 
       Verwendung einer existierenden Klasse,
deren Schnittstelle nicht der erforderlichen Schnittstelle
entspricht
         | 
     
     
        | 
       
Entwicklung einer wiederverwendbaren Klasse,
die mit unabhängigen anderen Klassen zusammenarbeiten soll
         | 
     
     
        | 
       
Eine eigene abstrakte Klasse soll mit Hilfe
fremder Klassen mit anderen Schnittstellen implementiert werden
  | 
  |  | 
     
     
       Struktur  | 
       
Strukturdiagramm
  | 
  |  | 
     
     
       Teilnehmer  | 
       
         | 
     
     
          Ziel | 
       anwendungsspezifische Schnittstelle
         | 
     
     
          Klient | 
       Anwendung
         | 
     
     
          Adapter | 
       Schnittstellenanpassung
         | 
     
     
          AdaptierteKlasse | 
       existierende Klasse
  | 
  |  | 
     
     
       Konsequenzen  | 
       
         | 
     
     
        | 
       Entkoppelung von Klassenbibliotheken
         | 
     
     
        | 
       Zusammenarbeit von unabhängigen Klassen
         | 
     
     
        | 
       Funktionalität ist erweiterbar
         | 
     
     
        | 
       flexibler als Klassenadapter
  | 
  |  | 
     
     
       Probleme  | 
       
         | 
     
     
        | 
        | 
     
     
        | 
       Performance
  | 
  |  | 
     
     
       Beispiele  | 
       
Java Beispiel
  | 
  |  | 
     
     
       Bekannte Verwendungen  | 
       
überall
  | 
  |  | 
     
     
       verwandte Muster  | 
       
         | 
     
     
        | 
       
Trennung von Schnittstelle und Implementierung 
--> unabhängige Variation beider Teile
  | 
  |  | 
     
     
        | 
       
Objekterweiterung ohne Änderung der Schnittstelle
  | 
  |  | 
     
     
        | 
       
Ersatzobjekt, Stellvertreter
  | 
  |  |