Abstract Factory (Design Pattern): Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: Die ''Abstract Factory'' ist ein Entwurfsmuster aus der Softwaretechnik, aus der Kategorie der Creational Pattern ('''Erzeugungsmuster'''). Das Muster ist e...) |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 28: | Zeile 28: | ||
[[Kategorie:Design Pattern]] | [[Kategorie:Design Pattern]] | ||
− | [[Kategorie:Creational | + | [[Kategorie:Creational Pattern]] |
[[Kategorie:Gang of Four Pattern]] | [[Kategorie:Gang of Four Pattern]] |
Aktuelle Version vom 18. Juni 2007, 18:51 Uhr
Die Abstract Factory ist ein Entwurfsmuster aus der Softwaretechnik, aus der Kategorie der Creational Pattern (Erzeugungsmuster). Das Muster ist eines von der sogenannten Viererbande (GoF) publiziertes Muster.
Inhaltsverzeichnis
Zweck
Das abstract Factory Muster bietet Schnittstellen zur Erstellung von verwandten und ähnlichen Objekten, jedoch ohne konkrete Klassenangaben.
Motivation
Die abstract Factory wird verwendet wenn verwandte Produkte erzeugt werden sollen, diese aber in einigen Eigenschaften unterschiedlich sind, z.B. eine grafische Oberfläche mit verschiedenen Themes.
Struktur
Teilnehmer
Interaktion
Konsequenz
Vorteilhaft ist, das Klassen werden gekapselt und sie so einfacher auszutauschen sind. Ein Nachteil ist, dass bei neuen Produktfamilien große Umbauten in den bestehenden Klassen getätigt werden.
Implementierung/Beispielcode
Es soll ein Kuchen gemacht per Software gemacht werden. Als abstrakte Factory wird die Klasse Kuchen genommen, diese hat die Methoden ofenAn()
und ofenAus()
und die abstrakten Methoden teigVorbereiten()
und herdEinstellen()
.
Konkrete Implementierungen der Kuchenfabrik wären z.B. Sandkuchen oder eine Torte.
Bekannte Verwendungen
Es wird oft beim Erstellen von grafischen Oberflächen mit verschiedenem Aussehen verwendet.
Verwandte Muster
Das Method Factory Pattern ist ein ähnliches Entwurfsmuster mit anderen Ansätzen. Dieses zielt jedoch auf ein spezielles Produkt und keine ganze Produktreihe ab.