• Keine Ergebnisse gefunden

Entwurfsmuster und Frameworks - Erbauer

N/A
N/A
Protected

Academic year: 2022

Aktie "Entwurfsmuster und Frameworks - Erbauer"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Entwurfsmuster und Frameworks - Erbauer

Sebastian Stenzel

6. November 2008

1 / 12

(2)

Beschreibung I

Klassifikation: objektbasiertes Erzeugungsmuster

Zweck: Trennung Konstruktion von komplexen Objekten und seiner Repr¨asentation.

⇒ Ein Konstruktionsprozess kann unterschiedliche Repr¨asentationen erzeugen.

Anwendungsbeispiel: RTF-Leser soll Dokumente einlesen und darstellen. Des Weiteren soll eine Konvertierung in verschiedene Textformate m¨oglich sein.

⇒ unterschiedliche Repr¨asentationen des

(3)

Struktur

3 / 12

(4)

Teilnehmer

Erbauer: Abstrakte Schnittstelle zum Erzeugen von Teilen KonkreterErbauer:

Implementierung der Erbauerschnittstellen definiert und verwaltet Repr¨asentation besitzt Produkt-R¨uckgabeschnittstelle

Direktor:konstruiert Produkt mit Erbauerschnittstelle Produkt:repr¨asentiert komplexes Objekt

(5)

Interaktionen I

5 / 12

(6)

Interaktionen II

Klient erzeugt Direktorobjekt und konfiguriert es mit entsprechendem Erbauerobjekt

Direktor informiert Erbauer wenn Teile des Produkts erbaut werden sollen

Erbauer arbeitet Anfrage des Direktors ab und f¨ugt Teile dem Produkt hinzu

Klient erh¨alt das Produkt vom Erbauer

(7)

Beispiel - Fahrzeug

Fahrzeug besteht aus R¨adern, Motor, Karosserie

Es existieren unterschiedliche Klassen dieser Komponenten (z.B. 50PS Motor und 300PS Motor)

Zwei Fahrzeugklassen:Gel¨andewagenund Limousine

7 / 12

(8)

Beispiel - Struktur

(9)

Beispiel - Interaktionen

9 / 12

(10)

Konsequenzen

Variation der internen Repr¨asentation eines Produkts:

interne Struktur und Konstruktionsprozeß wird versteckt Isolierung des Codes zur Konstruktion und

Repr¨asentation:

Kapselung des Konstruktionsprozesses und der Repr¨asentation

⇒ Klient kennt keine interne Strukturen zum Erstellen des Produkts

Genauere Steuerung des Konstruktionsprozesses:

Produkt wird Schritt f¨ur Schritt vom Direktor erzeugt

(11)

Implementierung

Konstruktionsschnittstelle:

Erbauerklassenschnittstelle muss allgemein genug sein, damit Konstruktion aller Produkte m¨oglich ist

Keine abstrakte Produktklasse:

Meist unterscheiden sich Produkte so stark, dass eine gemeinsame Oberklasse kaum einen Gewinn bringt.

Leere Methode als Defaultimplementierung in der Erbaueroberklasse:

Baue-Operationen nicht rein virtuell

⇒ Konkreter Erbauer muss nicht alle Methoden implementieren

11 / 12

(12)

Variation

Implementierung des Produkts in Erbauer-Schnittstelle

Referenzen

ÄHNLICHE DOKUMENTE

• Lösungsgerüst für eine spezielle Anwendungsdomäne, das die generelle Architektur und Struktur der Software vorgibt, und das durch konkrete Spezialisierungen zu einem

I Zeitbedarf beim Laden statt bei erster Benutzung → weder besser noch schlechter, nur anders... I potentieller Nachteil: Klassenladereihenfolge

I AbstractFactory: stellt Schnittstelle zum einheitlichen Erzeugen der konkreten Produktobjekte dar → typischerweise als Interface implementiert. I ConcreteFactory:

I Zweck: Definiere Methode zum Erzeugen von Objekten in abstrakter Klasse, ¨ uberlasse Erzeugung den konkreten Subklassen.. I auch bekannt als:

I klassenbasierte Strukturmuster verwenden dazu Vererbung in den beiden Auspr¨ agungen Schnittstellenvererbung und Implementierungsvererbung. I objektbasierte Strukturmuster

I Zus¨ atzliche Funktionalit¨ at speziellerer Schnittstellen muss komplett durch Verwendung der allgemeinen2. Schnittstellenfunktionalit¨ at

a placeholder object (proxy) that provides the same interface and that delegates operation calls to the actual subject.. I Applicability: Common reasons to hide a subject behind a

So wird verhindert, dass Sie Papier und Tinte verschwenden, indem sichergestellt wird, dass Sie nicht auf Papier mit dem falschen Format oder mit schlechter Papierqualität drucken,