homeSoftwaredesign Softwaredesign: Fassade Prof. Dr. Uwe Schmidt FH Wedel

Fassade

weiter

weiter

Fassade

Klassifizierung
objektbasiertes Strukturmuster
weiter
Zweck
einheitliche Schnittstelle zu einer Menge von Schnittstellen eines Systems
einfache Schnittstelle für ein komplexes System
weiter
Alias
facade
weiter
Motivation
Aufteilung eines komplexen Systems in Subsysteme
Reduktion der Komplexität
weiter
Beispiel
Compiler
weiter
Anwendbarkeit
einfache Schnittstelle für komplexes System
"Hauptprogramm" und Verarbeitung von Optionen
Entwurfsmuster: --> viele kleine Klassen
Fassade: --> Zusammenfassen und Kapseln
Entkoppelung: Klient <--> Subsystem
alles läuft über Fassaden-Schnittstelle
weiter
Struktur
Strukturdiagramm
weiter
Teilnehmer
  Fassade
konkret delegiert die Aufgaben an die Subsysteme
  Subsystem[A-C]
machen die eigentliche Arbeit
weiter
Konsequenzen
Klienten werden vom Subsystem abgeschirmt
einfachere Benutzung des Systems
Entkoppelung: Subsystem <--> Klient
Funktionalität wird delegiert an die Subsysteme
weiter
Implementierung
Reduktion der Kopplung durch Einführen einer abstrakten Klasse
unterschiedliche Implementierungen für Subsysteme möglich
Zugriffsrechte:
Java:
alles in ein Paket, einen eigenen Namensraum
nur die Fassade enthält public Methoden
der Rest ist (höchstens) friendly
C++:
keine Pakete, kein friendly, also mehr public
oder mit name spaces arbeiten
weiter
Beispiele
weiter
Datenbank-
Anpassung
Datenbankstruktur an Kundenschnittstelle anpassen
Ausganagspunk:
DB-Schema in 1. Normalform
normalisieren:
# der Tabellen erhöhen
weiter entfernt von der Anwendersicht
Fassade:
view auf die normalisierten DB-Tabellen implementieren
weiter
Bekannte Verwendungen
cc
C-Compiler bildet Schnittstelle zu Präprozessor, Parser, Codegenerator, Assembler und Linker
weiter
verwandte Muster
häufig nur ein Objekt der Fassadenklasse notwendig
weiter

Letzte Änderung: 13.04.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel