Zum Inhalt springen
uencoder

Decorator Pattern

Das Decorator-Pattern fügt einem Objekt dynamisch Verantwortlichkeiten hinzu, ohne seine Klasse zu ändern, und schichtet Verhalten über eine Kette von Wrappern als Alternative zur vererbungsbasierten Erweiterung.

Zweck

Funktionalität zur Laufzeit dynamisch schichten und Objekte flexibler erweitern als durch Vererbung.

Mechanismus

Ein Dekorator implementiert dieselbe Schnittstelle wie das Ziel, hält eine Referenz darauf und fügt Verhalten vor/nach der Delegation der Aufrufe hinzu. Mehrere Dekoratoren bilden eine Wrapper-Kette. Javas InputStream-Familie und Pythons @decorator sind typische Beispiele.

Anwendungsfälle

  • Funktionsschichtung
  • Dekoration von I/O-Streams
  • Querschnittsthemen

Verwandte Begriffe

References