ScholarGate
Assistent

Software-Entwurfsmuster

Software-Entwurfsmuster sind benannte, wiederverwendbare Lösungen für häufig wiederkehrende Entwurfsprobleme, die Expertenpraxis in einer Form erfassen, die über Systeme hinweg kommuniziert, gelehrt und angewendet werden kann.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Ein Entwurfsmuster ist eine allgemeine, wiederverwendbare Beschreibung einer Lösung für ein wiederkehrendes Entwurfsproblem innerhalb eines gegebenen Kontexts, ausgedrückt in Bezug auf die beteiligten Elemente, ihre Beziehungen und die Kompromisse, die die Lösung mit sich bringt.

Scope

Dieses Thema behandelt die klassischen erzeugenden, strukturellen und verhaltensbezogenen Muster des objektorientierten Entwurfs; die Struktur eines Musters (Name, Problem, Lösung, Konsequenzen); Musterkataloge und Mustersprachen; Unternehmens- und Parallelitätsmuster; sowie die angemessene und unangemessene Verwendung von Mustern, einschließlich des Risikos der Überentwicklung.

Core questions

  • Welche wiederkehrenden Entwurfsprobleme adressieren die Standardmuster?
  • Wie werden erzeugende, strukturelle und verhaltensbezogene Muster unterschieden?
  • Wie dokumentiert ein Muster sein Problem, seine Lösung und seine Konsequenzen?
  • Wann hilft die Anwendung eines Musters, und wann fügt sie unnötige Komplexität hinzu?

Key theories

Erzeugende, strukturelle und verhaltensbezogene Muster
Der Gang of Four-Katalog organisiert Muster nach ihrem Zweck – erzeugende Muster abstrahieren die Objektinstanziierung, strukturelle Muster setzen Objekte zu größeren Strukturen zusammen, und verhaltensbezogene Muster weisen Verantwortlichkeiten zu und verwalten die Kommunikation.
Muster als erfasste Entwurfserfahrung
Muster kodifizieren Expertenlösungen und bieten ein gemeinsames Vokabular, das das Niveau des Entwurfsdiskurses anhebt; eine Mustersprache verbindet Muster so, dass die Lösung eines Problems zum nächsten führt und den gesamten Entwurf leitet.

Clinical relevance

Muster verbessern die Kommunikation und die Entwurfsqualität durch die Wiederverwendung bewährter Strukturen und die Bereitstellung eines gemeinsamen Vokabulars für Teams; werden sie jedoch ohne Urteilsvermögen angewendet, können sie Indirektion und Komplexität einführen, sodass ihr Wert davon abhängt, ob das Muster zum tatsächlichen Problem passt.

History

Inspiriert von Christopher Alexanders architektonischen Mustersprachen formalisierte die Software-Community Entwurfsmuster mit dem Gang of Four-Katalog von 1994; nachfolgende Arbeiten erweiterten Muster auf Architektur, Parallelität und Unternehmensanwendungen, wodurch Muster zu einem festen Bestandteil der Entwurfsausbildung wurden.

Debates

Muster als Weisheit versus Symptom eines Sprachmangels
Einige argumentieren, dass der Bedarf an bestimmten Mustern fehlende Sprachmerkmale offenbart und dass die übermäßige Verwendung von Mustern zu einer Überentwicklung führt; andere betrachten Muster als dauerhaftes Entwurfsvokabular, das unabhängig von jeder Sprache ist.

Key figures

  • Erich Gamma
  • Richard Helm
  • Ralph Johnson
  • John Vlissides
  • Martin Fowler

Related topics

Seminal works

  • gamma1994
  • buschmann1996
  • fowler2002

Frequently asked questions

Sind Entwurfsmuster an eine bestimmte Programmiersprache gebunden?
Die klassischen Muster werden in objektorientierten Begriffen beschrieben und in bestimmten Sprachen illustriert, aber die Konzepte sind sprachunabhängig; wie ein Muster realisiert wird, variiert, und einige Muster werden in Sprachen mit erstklassigen Funktionen oder anderen Merkmalen trivial oder unnötig.
Kann die übermäßige Verwendung von Entwurfsmustern schädlich sein?
Ja. Das Erzwingen von Mustern, wo eine einfachere Lösung ausreicht, fügt Indirektion und kognitive Belastung hinzu; Muster sollten angewendet werden, weil sie ein tatsächlich wiederkehrendes Problem im Entwurf lösen, nicht als Standardstil.

Methods for this concept

Related concepts