Decorator & Fassade (Desing Pattern)

Decorator & Fassade (Desing Pattern)

A brief introduction to the decorator and fassade desing pattern (in german).

E7c3430a01629f9ca6d3bcb847e8e3b2?s=128

Thomas Uhrig

June 22, 2012
Tweet

Transcript

  1. 2.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Dekorator Strukturmuster der GoF flexible Bildung von Unterklassen
  2. 4.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Zweck dynamisches Hinzufügen von Funktionalität die Komponente ändert sich nicht „Erweiterbarkeit“ zur Laufzeit
  3. 5.

    . Lösung << Interface >> Komponente Konkrete Komponente Dekorierer Konkreter

    Dekorierer1 Konkreter Dekorierer2 com:Komponente op() op() : Thomas Uhrig & Design Patterns – Decorator Fassade op() op2() op() ... com.op(); super.op(); op2();
  4. 6.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Vorteile Komposition statt Vererbung ( ) zur Laufzeit möglich „Zusammenstecken“ Funktionalität ist leicht „entfernbar“ transparent für den Client
  5. 7.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Nachteile , jede neue Funktionalität ein neuer Dekorator ( ) viele ähnliche Klassen Übersichtlichkeit unklare Objektidentität
  6. 8.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    & Varianten Verweise ( ) / & Decorating Filter Pipes Filter ( ) Strategy kapselt eine Funktion in einer Klasse Filter A Filter B Klasse
  7. 9.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Fassade Strukturmuster der GoF Schnittstelle zu Subsystemen
  8. 10.
  9. 11.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Zweck kapseln von komplexen Subsystemen zentraler und einfacher Zugriff Clients müssen das Subsystem nicht kennen
  10. 12.

    . Lösung Client 1 : Thomas Uhrig & Design Patterns

    – Decorator Fassade Client 2 Fassade Komplexes Subsystem
  11. 13.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Vorteile ( ) entkoppelt Clients vom Subsystem Kapselung zentraler Zugriff lose Kopplung
  12. 14.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Nachteile Clients dürfen die Fassade nicht umgehen Fassade muss bei Änderungen angepasst werden ( ) erhöhter Aufwand Indirektionsstufe
  13. 15.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    & Varianten Verweise ( ) Adapter kapselt den Zugriff auf nur eine Klasse ( ) Proxy Stellvertreter für eine Klasse - ( ) Message Fassade zeitliche Entkoppelung
  14. 16.

    : Thomas Uhrig & Design Patterns – Decorator Fassade .

    Quellen & : Starke Eilebrecht . 2010. Patterns kompakt Spektruk Verlag : Wikipedia :// . . / / http de wikipedia org wiki Viererbande
  15. 17.

    Decorator # : Klassifikation Strukturmuster # : Zweck dynamisch zusätzliche

    Funktionalität # / Szenario : Motivation , Funktionen ändern ohne Klassen zu ändern # / : Lösung Struktur Komposition von Klassen mit gleichem Interface # ( - & ): Konsequenzen Vor Nachteile ; Verkettung viele ähnliche Klassen # & : Varianten Verweise ; Filter Strategy : Thomas Uhrig & Design Patterns – Decorator Fassade Fassade # : Klassifikation Strukturmuster # : Zweck Kapselung komplexer Subsysteme # / Szenario : Motivation . lose und einfache Kopplung zw Client und System # / : Lösung Struktur zentraler Zugang # ( - & ): Konsequenzen Vor Nachteile ; darf nicht umgangen werden Indirektionsstufe # & : Varianten Verweise ; ; Adapter Proxy