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
200
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
470
TechTrends - searching trends on HN and Reddit
tuhrig
0
2.6k
Image optimization for websites
tuhrig
6
990
Siedler von Catan in UML
tuhrig
1
4.1k
Java (Micro) Performance Measuring
tuhrig
2
2.8k
Dokumenten Klassifikation mit dem naiven Bayes-Klassifizierer (Python)
tuhrig
1
410
Smalltalk – Geschichte, Idee und Syntax
tuhrig
1
150
XForms & XFormsMM
tuhrig
1
1.5k
Other Decks in Programming
See All in Programming
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
950
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
3
350
PagerDuty を軸にした On-Call 構築と運用課題の解決 / PagerDuty Japan Community Meetup 4
horimislime
1
100
JaSST 24 九州:ワークショップ(は除く)実践!マインドマップを活用したソフトウェアテスト+活用事例
satohiroyuki
0
170
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
3
1.2k
watsonx.ai Dojo #3 プロンプトエンジニアリング入門
oniak3ibm
PRO
0
490
VR HMDとしてのVision Pro+ゲーム開発について
yasei_no_otoko
0
100
色々なIaCツールを実際に触って比較してみる
iriikeita
0
130
RailsのPull requestsのレビューの時に私が考えていること
yahonda
4
1.5k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
0
210
生成 AI を活用した toitta 切片分類機能の裏側 / Inside toitta's AI-Based Factoid Clustering
pokutuna
0
530
Kotlinの好きなところ
kobaken0029
0
220
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
The Language of Interfaces
destraynor
154
24k
Happy Clients
brianwarren
97
6.7k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Measuring & Analyzing Core Web Vitals
bluesmoon
0
29
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
7.9k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Scaling GitHub
holman
458
140k
The Invisible Side of Design
smashingmag
297
50k
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