3 Konfigurationsmöglichkeiten von Software
3.2.4.1 Entwurfsmuster106
Entwurfsmuster „sind Beschreibungen zusammenarbeitender Objekte und Klassen, die maßgeschneidert
sind, um ein allgemeines Entwurfsproblem in einem bestimmten Kontext zu
lösen. Ein Entwurfsmuster benennt, abstrahiert und identifiziert die relevanten Aspekte einer
allgemeinen Entwurfsstruktur“107, hilft bei der Komponentenentwicklung und stellt wiederum
selbst universelle Komponenten dar, die flexibel wiederverwendet werden können. Sie bieten
einfache und elegante Lösungen für spezifische Probleme des objektorientierten Softwareentwurfs,
indem sie einfache und konzentrierte Problemlösungen darstellen.
Entwurfsmuster sind durch die Überlegung entstanden, dass sich in jeder gut strukturierten,
objektorientierten Architektur Muster finden lassen müssen. Daraus resultieren weniger umfangreiche und leichter verständliche Architekturen, die bereits erfolgreich Anforderungen
umgesetzt haben, und konzentrieren das Wissen und die Erfahrungen der Programmierer so,
dass immer wiederkehrende Probleme nicht neu gelöst werden müssen. Sie bestehen objektorientiert
aus Objekten, Klassen, Schnittstellen und Vererbungshierarchien.
Der Katalog nach Gamma enthält 23 Muster in 3 verschiedenen Kategorien108: Erzeugungsmuster,
Strukturmuster und Verhaltensmuster, die sich jedoch häufig ähneln. Sie beinhalten
grundlegende Elemente wie
Mustername: Als knappe Bezeichnung des Problems und Verdeutlichung des Vokabulars.
Problemabschnitt: Als Problem- und Kontextbeschreibung mit Bedingungen für den Einsatz
eines Musters (Motivation, Zweck, Grundprinzip, Fragestellungen, Anwendungsdiagramme).
Lösungsabschnitt: Als abstrakte Beschreibung der Elemente, Beziehungen, Zuständigkeiten
und Interaktionen und Anordnungen der Elemente des Entwurfs als eine Schablone, hier gehört
auch ein Beispielcode dazu.
Konsequenzabschnitt: Als Beschreibung der Vor- und Nachteile bei Verwendung, z.B.
Speicherplatzverbrauch, Ausführungszeit, Sprach- und Implementierungsaspekte, Einfluss auf
Flexibilität, Erweiterbarkeit und Portabilität eines Systems, Variantenmöglichkeiten, Fallen,
Tipps und Techniken für die Implementierung, verwandte Muster und bekannte Anwendungsfälle
und welche Muster zusammen verwendet werden können.
Beispielhaft sei hier das Strukturmuster für einen Adapter bzw. Wrapper erläutert106.
Das Muster dient der Schnittstellenimplementierung zwischen inkompatiblen Klassen ohne dass
die Klassen selbst geändert werden müssen. So ist eine Wiederverwendung von Klassen einer
Klassenbibliothek möglich, was sonst nicht der Fall wäre. Die Vorgehensweise ist Abbildung
9 zu entnehmen:
Dabei greift der Client auf die Zielklasse zu und möchte eine Operation ausführen, die die
Klasse nicht bietet, aber von der adaptierten Klasse angeboten wird. Auf direkten Wege kann
diese Operation aus z.B. Inkompatibilitätsgründen nicht erfolgen, deswegen wird in diesem
Entwicklungsmuster eine neue Klasse „Adapter“ eingeführt, die beide Methoden von den
Oberklassen vererbt bekommt, die Berechnung ausführt und das Ergebnis an den Client zurückgibt.
Vor- und Nachteile von Entwurfsmustern seien hier zusammengefasst:
Bewertung von Entwurfsmustern110
Vorteile
Nachteile
Neben dem Entwurfsmuster gibt es unter anderem Architekturmuster, die prinzipiell das
gleiche Ziel verfolgen, nämlich ein spezifisches Problem durch eine bestehende Schablone zu
lösen. Architekturmuster sind hierbei wesentlich weitgreifender, da sie ein komplettes Grundgerüst
für die Anordnung von Elementen in einem Softwaresystem vorgeben.
.
Top|
Home|
<< Zurück |
Nächste >>
" TARGET="_blank"> >> Home Page << |