Abstract Factory

Abstract Factory
UML-Diagramm: Abstrakte Fabrik

Die Abstrakte Fabrik (engl. Abstract Factory, Kit) ist ein Entwurfsmuster aus dem Bereich der Softwareentwicklung und gehört zu der Kategorie der Erzeugungsmuster (Creational Patterns). Es definiert eine Schnittstelle zur Erzeugung einer Familie von Objekten, wobei die konkreten Klassen der zu instanzierenden Objekte dabei nicht näher festgelegt werden. Das Muster ist eines der sogenannten GoF-Muster (siehe Viererbande).

Inhaltsverzeichnis

Verwendung

Die Abstrakte Fabrik findet Anwendung, wenn

  • ein System unabhängig von der Art der Erzeugung seiner Produkte arbeiten soll,
  • ein System mit einer oder mehreren Produktfamilien konfiguriert werden soll,
  • eine Gruppe von Produkten erzeugt und gemeinsam genutzt werden soll oder
  • wenn in einer Klassenbibliothek die Schnittstellen von Produkten ohne deren Implementierung bereitgestellt werden sollen.

Eine typische Anwendung ist die Erstellung einer grafischen Benutzeroberfläche mit unterschiedlichen Themes.

Eine Abstrakte Fabrik vereinigt die Verantwortungen „Zusammenfassung der Objektgenerierung an einer Stelle“ und „Möglichkeit zu abstrakten Konstruktoren“ (siehe auch unten unter „Verwandte Entwurfsmuster“).

UML-Diagramm

UML-Diagramm: Abstrakte Fabrik

Akteure

AbstrakteFabrik
definiert eine Schnittstelle zur Erzeugung abstrakter Produkte einer Produktfamilie
KonkreteFabrik
erzeugt konkrete Produkte einer Produktfamilie durch Implementierung der Schnittstelle
AbstraktesProdukt
definiert eine Schnittstelle für eine Produktart
KonkretesProdukt
definiert ein konkretes Produkt einer Produktart durch Implementierung der Schnittstelle, wird durch die korrespondierende konkrete Fabrik erzeugt
Klient
verwendet die Schnittstellen der abstrakten Fabrik und der abstrakten Produkte

Vorteile

  • Konkrete Klassen werden isoliert.
  • Der Austausch von Produktfamilien ist auf einfache Art und Weise möglich.

Nachteile

  • Neue Produktarten lassen sich schwer hinzufügen, da in allen konkreten Fabriken Änderungen vorzunehmen sind.

Verwendung in der Analyse

Wegen der gemeinsamen Komplexität der beiden wesentlichen Verantwortungen („Zusammenfassung der Objektgenerierung an einer Stelle“ und „Möglichkeit zu abstrakten Konstruktoren“) ist dieses Pattern für die Analyse praktisch irrelevant.

Beispiel

Es soll eine Spielesammlung per Software entwickelt werden. Die verwendeten Klassen sind dabei

  1. Spielbrett (erstes abstraktes Produkt), auf das Spielfiguren platziert werden können und das beispielsweise eine Methode besitzt, um sich auf dem Bildschirm anzuzeigen. Konkrete, davon abgeleitete Produkte sind Schachbrett, Mühlebrett, Halmabrett etc.
  2. Spielfigur (zweites abstraktes Produkt), die auf ein Spielbrett gesetzt werden kann. Konkrete, davon abgeleitete Produkte sind Hütchen, Schachfigur (der Einfachheit halber soll es hier nur einen Typ an Schachfiguren geben), Holzsteinchen etc.
  3. Spielfabrik (abstrakte Fabrik), die Komponenten (Spielbrett, Spielfiguren) eines Gesellschaftsspiels erstellt. Konkrete, davon abgeleitete Fabriken sind beispielsweise Mühlefabrik, Damefabrik, Schachfabrik etc.

Ein Klient (z.B. eine Instanz einer Spieler- oder Spielleiter-Klasse) kann sich von der abstrakten Fabrik Spielfiguren bzw. ein Spielbrett erstellen lassen. Je nachdem, welches konkrete Spiel gespielt wird, liefert beispielsweise die...

  • Schachfabrik ein Schachbrett und Schachfiguren
  • Damefabrik ebenfalls ein Schachbrett, aber Holzsteinchen
  • Mühlefabrik ein Mühlebrett, aber ebenfalls Holzsteinchen

Ein Beispiel in C# ist hier zu finden: http://en.csharp-online.net/Abstract_Factory_design_pattern:_Example

Verwandte Entwurfsmuster

Das Muster der Fabrikmethode ist dem der Abstrakten Fabrik strukturell ähnlich, aber sowohl in seiner Motivation als auch in der Verwendung verschieden. Im Gegensatz zur Abstrakten Fabrik zielt dieses Muster nicht auf austauschbare Produktfamilien, sondern auf ein einzelnes Produkt. Dabei wird die Bestimmung der Klasse eines Produktes in die Unterklassen der Erzeugerhierarchie verschoben. Die Erzeugerhierarchie muss dadurch nicht zwangsläufig parallel zur Produkthierarchie sein, wie dies beim Muster der Abstrakten Fabrik der Fall ist.

Möchte man generell eine zusätzliche Hierarchie von Fabriken zu einer Hierarchie von Produkten vermeiden, kann das Muster des Prototyps verwendet werden. Bei diesem Muster werden zur Erzeugung neuer Objekte prototypische Instanzen kopiert.


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Abstract Factory (patrón de diseño) — Abstract Factory (Fábrica Abstracta) es un patrón de diseño para el desarrollo de software. Contenido 1 Contexto y problema 2 Aspecto estático 3 Un ejemplo 4 Véase también …   Wikipedia Español

  • Abstract Factory (patron de diseno) — Saltar a navegación, búsqueda Abstract Factory (patrón de diseño) Obtenido de Abstract Factory (patron de diseno) …   Wikipedia Español

  • Abstract Factory (patrón de diseño) — Abstract Factory (Fábrica Abstracta) es un patrón de diseño para el desarrollo de software. El problema que intenta solucionar este patrón es el de crear diferentes familias de objetos. Uno de los usos más comunes es el de creación de interfaces… …   Enciclopedia Universal

  • Abstract factory pattern — The abstract factory pattern is a software design pattern that provides a way to encapsulate a group of individual factories that have a common theme. In normal usage, the client software creates a concrete implementation of the abstract factory… …   Wikipedia

  • Factory method pattern — Factory method in UML Facto …   Wikipedia

  • Factory Method (patrón de diseño) — Saltar a navegación, búsqueda En diseño de software, el patrón de diseño Factory Method consiste en utilizar una clase constructora (al estilo del Abstract Factory) abstracta con unos cuantos métodos definidos y otro(s) abstracto(s): el dedicado… …   Wikipedia Español

  • Abstract — (‘resumen’, en inglés) puede referirse a: Abstract (sumario): resumen de un artículo científico (en:Abstract (summary)). Abstract (derecho): resumen de un texto jurídico (en:Abstract (law)). Véase también Abstract Factory (patrón de diseño)… …   Wikipedia Español

  • Factory — (englisch ‚Fabrik‘) steht für: The Factory, das Studio von Andy Warhol Factory Records, ein Independent Plattenlabel Abstract Factory, ein Entwurfsmuster im Bereich der Softwareentwicklung Siehe auch Factory Creek …   Deutsch Wikipedia

  • Factory-Pattern — Der Begriff Fabrikmethode (englisch Factory Method) bezeichnet ein Entwurfsmuster (engl. Design Pattern) aus dem Bereich der Softwareentwicklung. Das Muster beschreibt, wie ein Objekt durch Aufruf einer Methode anstatt durch direkten Aufruf eines …   Deutsch Wikipedia

  • Factory Method — Der Begriff Fabrikmethode (englisch Factory Method) bezeichnet ein Entwurfsmuster (engl. Design Pattern) aus dem Bereich der Softwareentwicklung. Das Muster beschreibt, wie ein Objekt durch Aufruf einer Methode anstatt durch direkten Aufruf eines …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”