Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Decorator & Fassade (Desing Pattern)
Search
Thomas Uhrig
June 22, 2012
Programming
2
230
Decorator & Fassade (Desing Pattern)
A brief introduction to the decorator and fassade desing pattern (in german).
Thomas Uhrig
June 22, 2012
Tweet
Share
More Decks by Thomas Uhrig
See All by Thomas Uhrig
Event Sourcing
tuhrig
0
6.2k
Porting of an enterprise OSGi application to a PaaS
tuhrig
0
490
TechTrends - searching trends on HN and Reddit
tuhrig
0
2.6k
Image optimization for websites
tuhrig
6
1k
Siedler von Catan in UML
tuhrig
1
4.3k
Java (Micro) Performance Measuring
tuhrig
2
2.9k
Dokumenten Klassifikation mit dem naiven Bayes-Klassifizierer (Python)
tuhrig
1
490
Smalltalk – Geschichte, Idee und Syntax
tuhrig
1
210
XForms & XFormsMM
tuhrig
1
1.5k
Other Decks in Programming
See All in Programming
兎に角、コードレビュー
mitohato14
0
140
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
180
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
12
2.7k
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2.2k
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
1.9k
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
130
あのころの iPod を どうにか再生させたい
orumin
2
2.5k
学習を成果に繋げるための個人開発の考え方 〜 「学習のための個人開発」のすすめ / personal project for leaning
panda_program
1
100
コンテキストエンジニアリングで変わるAI活用 リファクタリングワークフローの実践から学んだ形式知
leveragestech
0
100
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
160
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
220
Comparing decimals in Swift Testing
417_72ki
0
170
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Making Projects Easy
brettharned
117
6.3k
Scaling GitHub
holman
462
140k
Adopting Sorbet at Scale
ufuk
77
9.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Faster Mobile Websites
deanohume
309
31k
Transcript
Decorator & Fassade : Thomas Uhrig & Design Patterns –
Decorator Fassade
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Dekorator Strukturmuster der GoF flexible Bildung von Unterklassen
Decorator
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Zweck dynamisches Hinzufügen von Funktionalität die Komponente ändert sich nicht „Erweiterbarkeit“ zur Laufzeit
. 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();
: 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
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Nachteile , jede neue Funktionalität ein neuer Dekorator ( ) viele ähnliche Klassen Übersichtlichkeit unklare Objektidentität
: Thomas Uhrig & Design Patterns – Decorator Fassade .
& Varianten Verweise ( ) / & Decorating Filter Pipes Filter ( ) Strategy kapselt eine Funktion in einer Klasse Filter A Filter B Klasse
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Fassade Strukturmuster der GoF Schnittstelle zu Subsystemen
Fassade
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Zweck kapseln von komplexen Subsystemen zentraler und einfacher Zugriff Clients müssen das Subsystem nicht kennen
. Lösung Client 1 : Thomas Uhrig & Design Patterns
– Decorator Fassade Client 2 Fassade Komplexes Subsystem
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Vorteile ( ) entkoppelt Clients vom Subsystem Kapselung zentraler Zugriff lose Kopplung
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Nachteile Clients dürfen die Fassade nicht umgehen Fassade muss bei Änderungen angepasst werden ( ) erhöhter Aufwand Indirektionsstufe
: 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
: Thomas Uhrig & Design Patterns – Decorator Fassade .
Quellen & : Starke Eilebrecht . 2010. Patterns kompakt Spektruk Verlag : Wikipedia :// . . / / http de wikipedia org wiki Viererbande
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