A
Adapter
Synonyme:
Wrapper
Kurz:
Konvertiert die Schnittstelle einer Klasse in eine, die von den Clients erwartet wird.
Länger:
Der Adapter kapselt eine vorhandene Klasse und stellt eine andere Schnittstelle bereit, sodass inkompatible Komponenten zusammenarbeiten können. Er verändert typischerweise nicht die Fachlogik der adaptierten Klasse, sondern übersetzt nur deren Interface in die vom Client erwartete Form.
Man unterscheidet häufig Klassenadapter und Objektadapter. In der Praxis wird das Muster oft eingesetzt, wenn bestehende Bibliotheken, Legacy-Code oder Drittkomponenten in eine neue Architektur eingebunden werden sollen.
- https://refactoring.guru/design-patterns/adapter
- https://www.ictdemy.com/software-design/design-patterns/gof/gof-structural-patterns/adapter-wrapper-design-pattern
- https://en.wikipedia.org/wiki/Adapter_pattern
Antipattern
Synonyme:
Anti-pattern, Anti Pattern, bad idea, code smell (verwandt), design smell (verwandt)
Kurz:
Bezeichnet ein Thema jenseits der originalen Gang-of-Four-Patterns: ein verbreitetes, zunächst plausibel wirkendes, aber in der Praxis schädliches oder kontraproduktives Lösungsmuster.
Länger:
Ein Antipattern beschreibt eine wiederkehrende „Lösung“, die auf den ersten Blick sinnvoll erscheint, in der Praxis aber mehr Schaden als Nutzen anrichtet. Kennzeichnend ist, dass die Vorgehensweise häufig genug vorkommt, um benennbar zu sein, und dass es eine bessere, bekannte und wiederholbar wirksame Alternative gibt.
Der Begriff wurde in bewusster Analogie zu Design Patterns geprägt. Während ein Pattern eine bewährte Lösung für ein wiederkehrendes Problem beschreibt, dokumentiert ein Antipattern eine wiederkehrende Fehlentscheidung oder eine Sackgasse mit negativen Konsequenzen.
Im Softwarebereich werden Antipatterns auf Code-, Design-, Architektur-, Organisations- und Prozessebene diskutiert. Verwandte Begriffe wie „Code Smell“ oder „Design Smell“ überschneiden sich teilweise, sind aber nicht vollständig deckungsgleich.
- https://agilealliance.org/glossary/antipattern/
- https://en.wikipedia.org/wiki/Anti-pattern
- https://www.baeldung.com/cs/anti-patterns
Architekturpattern
Synonyme:
Architectural Pattern, Software Architecture Pattern, Architekturmuster
Kurz:
Bezeichnet ein Thema jenseits der originalen Gang-of-Four-Patterns: ein wiederverwendbares Lösungsschema für wiederkehrende Probleme auf System- und Architekturebene.
Länger:
Architekturpatterns beschreiben bewährte Lösungsstrukturen für die Grobarchitektur eines Softwaresystems. Sie behandeln nicht primär die Zusammenarbeit einzelner Klassen oder Objekte, sondern die übergreifende Organisation von Subsystemen, Komponenten, Kommunikationsbeziehungen und Qualitätsmerkmalen.
Im Unterschied zu GoF-Design-Patterns liegen Architekturpatterns auf einer höheren Abstraktionsebene. Typische Beispiele sind Layered Architecture, Microservices, Event-Driven Architecture, Pipe-and-Filter oder Client-Server.
In der Praxis helfen Architekturpatterns dabei, systemweite Entscheidungen konsistent zu treffen. Dazu gehören Fragen nach Kopplung, Skalierbarkeit, Änderbarkeit, Verteilung, Ausfallsicherheit und Verantwortlichkeit von Komponenten.
- https://en.wikipedia.org/wiki/List_of_software_architecture_styles_and_patterns
- https://www.redhat.com/en/blog/14-software-architecture-patterns
- https://tecnovy.com/en/top-10-software-architecture-patterns
Aufbau von Patterns
Synonyme:
Pattern-Struktur, Aufbau eines Entwurfsmusters, Pattern Template, GoF Template
Kurz:
Bezeichnet ein Thema jenseits der originalen Gang-of-Four-Patterns: die dokumentierte Standardstruktur, mit der Patterns beschrieben, verglichen und vermittelt werden.
Länger:
Patterns bestehen nicht nur aus einem Namen und einer Lösungsidee, sondern folgen meist einer strukturierten Beschreibungsvorlage. Die GoF-Dokumentation und ihre Nachfolger verwenden dafür typische Abschnitte wie Pattern Name, Intent, Also Known As, Motivation, Applicability, Structure, Participants, Collaborations, Consequences und oft zusätzlich Implementation, Sample Code, Known Uses und Related Patterns.
Diese Struktur ist fachlich wichtig, weil ein Pattern nicht einfach ein Rezept ist, sondern immer Problem, Kontext, Lösung, Zusammenarbeit der Beteiligten und Folgen zusammen beschreibt. Erst diese Kombination macht ein Pattern als übertragbares Wissensobjekt brauchbar.
Gerade für Schulung, Dokumentation, Architekturarbeit und Pattern-Kataloge ist der Aufbau entscheidend. Er erleichtert Vergleichbarkeit, gemeinsames Vokabular und die nachvollziehbare Auswahl eines passenden Musters.
- https://hillside.net/index.php/gang-of-four-template
- https://users.encs.concordia.ca/~gregb/home/PDF/se_design_patterns.pdf
- http://www.dre.vanderbilt.edu/~schmidt/PDF/GoF.pdf
Abstract Factory
Synonyme:
Abstrakte Fabrik
Kurz:
Erzeugt Familien verwandter oder abhängiger Objekte, ohne ihre konkreten Klassen anzugeben.
Länger:
Abstract Factory stellt eine Schnittstelle zur Verfügung, über die zusammengehörige Produktfamilien erzeugt werden können. Der Client arbeitet gegen Abstraktionen und bleibt von konkreten Klassen unabhängig.
Das Muster ist besonders nützlich, wenn mehrere Varianten eines Systems unterstützt werden müssen, etwa unterschiedliche GUI-Toolkits, Plattformen oder Produktlinien. Es fördert Konsistenz innerhalb einer Produktfamilie und reduziert direkte Abhängigkeiten zu konkreten Implementierungen.
- https://en.wikipedia.org/wiki/Abstract_factory_pattern
- https://refactoring.guru/design-patterns/abstract-factory
B
Bridge
Synonyme:
Brücke
Kurz:
Entkoppelt Abstraktion und Implementierung, damit beide unabhängig voneinander variieren können.
Länger:
Bridge trennt eine fachliche Abstraktion von ihrer technischen oder konkreten Implementierung. Statt eine große Vererbungshierarchie aufzubauen, wird die Implementierung über Komposition eingebunden.
Das Muster eignet sich, wenn sowohl die Abstraktion als auch ihre Implementierungen unabhängig erweiterbar sein sollen. So lässt sich eine kombinatorische Explosion von Unterklassen vermeiden.
Builder
Synonyme:
Erbauer
Kurz:
Trennt die schrittweise Konstruktion eines komplexen Objekts von seiner Repräsentation.
Länger:
Builder kapselt den Aufbau komplexer Objekte mit vielen optionalen oder voneinander abhängigen Bestandteilen. Dadurch wird die Konstruktion lesbarer, kontrollierbarer und von der internen Repräsentation entkoppelt.
Das Muster ist sinnvoll, wenn Konstruktoren zu lang, unübersichtlich oder fehleranfällig werden. Es unterstützt insbesondere Konfigurationen mit vielen optionalen Parametern oder verschiedenen Aufbauvarianten.
C
Chain of Responsibility
Synonyme:
Zuständigkeitskette, Verantwortungskette
Kurz:
Leitet eine Anfrage entlang einer Kette möglicher Bearbeiter weiter, bis einer sie verarbeitet.
Länger:
Bei Chain of Responsibility kennt der Sender nicht den konkreten Empfänger einer Anfrage. Stattdessen wird die Anfrage schrittweise durch eine Kette von Objekten weitergereicht, die jeweils entscheiden, ob sie zuständig sind.
Das Muster reduziert die Kopplung zwischen Sender und Empfänger. Es wird häufig für Ereignisbehandlung, Filterketten, Validierungsschritte oder Genehmigungsprozesse verwendet.
- https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern
- https://refactoring.guru/design-patterns/chain-of-responsibility
Command
Synonyme:
Befehl, Action (kontextabhängig), Request Object
Kurz:
Kapselt eine Anforderung als Objekt, damit sie parametriert, gespeichert, protokolliert oder rückgängig gemacht werden kann.
Länger:
Das Command-Muster verpackt eine Operation samt nötigem Kontext in ein eigenes Objekt. Dadurch lassen sich Befehle in Warteschlangen stellen, loggen, kombinieren oder per Undo/Redo wieder zurücknehmen.
Es trennt den Auslöser einer Aktion vom eigentlichen Ausführer. Das ist besonders nützlich in GUI-Anwendungen, Makrosystemen, Job-Queues und Integrationsarchitekturen.
Composite
Synonyme:
Kompositum, Baumstrukturmuster
Kurz:
Fasst Objekte zu Baumstrukturen zusammen, sodass Einzelobjekte und Objektgruppen einheitlich behandelt werden können.
Länger:
Composite erlaubt, einzelne Objekte und zusammengesetzte Strukturen über dieselbe Schnittstelle anzusprechen. Clients müssen dadurch nicht unterscheiden, ob sie mit einem Blatt oder einem zusammengesetzten Knoten arbeiten.
Das Muster ist besonders nützlich für hierarchische Daten wie GUI-Komponenten, Dateisysteme, Dokumentstrukturen oder Organisationsbäume. Es unterstützt rekursive Verarbeitung und ein konsistentes Objektmodell.
D
Decorator
Synonyme:
Wrapper (verwandt, nicht identisch), Dekorierer
Kurz:
Fügt einem Objekt dynamisch zusätzliche Verantwortlichkeiten hinzu, ohne seine Klasse zu ändern.
Länger:
Decorator verpackt ein Objekt in ein anderes Objekt mit derselben Schnittstelle und ergänzt so Verhalten zur Laufzeit. Dadurch können Funktionserweiterungen flexibel kombiniert werden, ohne eine starre Vererbungsstruktur aufzubauen.
Das Muster eignet sich besonders für optionale oder kombinierbare Zusatzfunktionen. Typische Beispiele sind Streams, Validierungs- oder Logging-Schichten sowie UI-Dekorationen.
Design Pattern
Synonyme:
Entwurfsmuster, Designmuster
Kurz:
Beschreibt eine bewährte, wiederverwendbare Lösung für ein wiederkehrendes Entwurfsproblem in einem bestimmten Kontext.
Länger:
Ein Design Pattern ist keine fertige Bibliothek und kein direkt kopierbarer Code, sondern ein abstrahiertes Lösungsschema. Es beschreibt Problem, Kontext, Struktur und Konsequenzen so, dass die Lösung in verschiedenen Systemen wiederverwendet werden kann.
Die Gang of Four haben den Begriff im Bereich objektorientierter Softwareentwicklung stark geprägt. Ihre 23 Muster zählen zu den bekanntesten klassischen Entwurfsmustern.
- https://en.wikipedia.org/wiki/Design_Patterns
- https://refactoring.guru/design-patterns
- https://www.digitalocean.com/community/tutorials/gangs-of-four-gof-design-patterns
F
Facade
Synonyme:
Fassade
Kurz:
Bietet eine vereinfachte Schnittstelle zu einem komplexen Subsystem.
Länger:
Facade reduziert Komplexität, indem mehrere interne Schnittstellen hinter einer einzigen, höherwertigen API verborgen werden. Clients müssen dadurch weniger Details des Subsystems kennen.
Das Muster verbessert Verständlichkeit und reduziert Kopplung. Es ist besonders hilfreich an Systemgrenzen, in Legacy-Modernisierung und beim Kapseln umfangreicher Frameworks.
Factory Method
Synonyme:
Fabrikmethode, Virtual Constructor
Kurz:
Definiert eine Schnittstelle zur Objekterzeugung, überlässt aber Unterklassen die Entscheidung über die konkrete Klasse.
Länger:
Factory Method entkoppelt die Nutzung eines Produkts von dessen konkreter Erzeugung. Die Basisklasse definiert den Erzeugungsmechanismus abstrakt, während Unterklassen konkrete Produkttypen festlegen.
Das Muster ist nützlich, wenn Frameworks oder Basisklassen allgemeine Abläufe vorgeben, aber domänenspezifische Produktklassen erst in Unterklassen bestimmt werden. So wird Erweiterbarkeit gefördert, ohne die Basisklasse zu verändern.
- https://en.wikipedia.org/wiki/Factory_method_pattern
- https://refactoring.guru/design-patterns/factory-method
Flyweight
Synonyme:
Fliegengewicht
Kurz:
Teilt gemeinsamen Zustand zwischen vielen feingranularen Objekten, um Speicher und Ressourcen zu sparen.
Länger:
Flyweight lagert unveränderlichen, gemeinsam nutzbaren Zustand aus und teilt ihn zwischen vielen logischen Objekten. Der variable Kontext wird getrennt gehalten und bei Bedarf extern übergeben.
Das Muster ist besonders nützlich bei sehr großen Mengen ähnlicher Objekte, etwa Zeichen in Textsystemen oder Symbolen in grafischen Editoren. Es optimiert Ressourcenverbrauch, erhöht aber die Anforderungen an Zustandsverwaltung und API-Disziplin.
G
Gang of Four
Synonyme:
GoF
Kurz:
Bezeichnet die vier Autoren des klassischen Buchs „Design Patterns: Elements of Reusable Object-Oriented Software“.
Länger:
Mit „Gang of Four“ sind Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides gemeint. Ihr Buch aus den 1990er Jahren hat die systematische Beschreibung objektorientierter Entwurfsmuster maßgeblich geprägt.
Im engeren fachlichen Sprachgebrauch steht „GoF“ oft stellvertretend für die 23 im Buch beschriebenen klassischen Design Patterns. Viele spätere Pattern-Kataloge orientieren sich an deren Begriffsapparat und Dokumentationsstil.
- https://en.wikipedia.org/wiki/Design_Patterns
- https://de.wikipedia.org/wiki/Entwurfsmuster_(Buch)
- https://www.ashishvishwakarma.com/GoF-Design-Patterns-by-Example/assets/Gang_Of_Four.gif
I
Interpreter
Synonyme:
Interpreter
Kurz:
Definiert eine Repräsentation für die Grammatik einer Sprache und einen Mechanismus zu ihrer Auswertung.
Länger:
Interpreter modelliert Regeln einer einfachen Sprache über Objekte oder Klassen und ermöglicht die Auswertung entsprechender Ausdrücke. Das Muster eignet sich vor allem für kleine domänenspezifische Sprachen oder Ausdruckssysteme.
Bei wachsender Komplexität stößt der objektorientierte Ansatz des Musters jedoch schnell an Grenzen. Für umfangreiche Sprachen werden oft Parsergeneratoren oder andere spezialisierte Techniken bevorzugt.
- https://en.wikipedia.org/wiki/Interpreter_pattern
- https://refactoring.guru/design-patterns/interpreter
Iterator
Synonyme:
Cursor
Kurz:
Ermöglicht den sequenziellen Zugriff auf Elemente eines Aggregats, ohne dessen interne Darstellung offenzulegen.
Länger:
Iterator trennt die Traversierungslogik von der Datenstruktur. Clients können Elemente nacheinander durchlaufen, ohne Details über Speicherstruktur, Verkettung oder interne Organisation kennen zu müssen.
Das Muster fördert Kapselung und erlaubt unterschiedliche Traversierungsstrategien. Es ist in modernen Sprachen oft tief in Collection-Frameworks integriert.
M
Mediator
Synonyme:
Vermittler
Kurz:
Zentralisiert die Kommunikation zwischen Objekten, um direkte Abhängigkeiten zu verringern.
Länger:
Mediator führt Interaktionen vieler Objekte in einer zentralen Koordinationsinstanz zusammen. Statt dass viele Komponenten direkt miteinander kommunizieren, sprechen sie mit dem Mediator.
Das reduziert die Zahl direkter Abhängigkeiten und kann komplexe Interaktionsregeln besser beherrschbar machen. Gleichzeitig besteht die Gefahr, dass der Mediator selbst zu umfangreich und schwer wartbar wird.
Memento
Synonyme:
Snapshot (kontextabhängig), Token (selten)
Kurz:
Speichert und restauriert den inneren Zustand eines Objekts, ohne dessen Kapselung zu verletzen.
Länger:
Memento trennt die Zustandsaufbewahrung vom restlichen Objektmodell, indem ein Objekt seinen internen Zustand in einem separaten Trägerobjekt sichern kann. Dieser Zustand lässt sich später wiederherstellen.
Das Muster wird häufig für Undo/Redo-Funktionen, Checkpoints oder Verlaufsverwaltung verwendet. Wichtig sind dabei Speicherverbrauch, Lebensdauer der Snapshots und die Frage, welche Zustände wirklich gesichert werden müssen.
Micropattern
Synonyme:
Micro Pattern, Mikropattern, C++ Micropattern (kontextspezifisch)
Kurz:
Bezeichnet ein Thema jenseits der originalen Gang-of-Four-Patterns: ein sehr kleines, wiederkehrendes Struktur- oder Codierungsmuster unterhalb der klassischen Design-Pattern-Ebene.
Länger:
Micropatterns beschreiben sehr kleine, oft idiomatische Strukturen in Klassen, Methoden oder Objektbeziehungen. Sie sind feinkörniger als klassische Design Patterns und bewegen sich näher an konkretem Code, Namensgebung oder Minimalstrukturen im Objektmodell.
Im Gegensatz zu GoF-Mustern lösen Micropatterns meist keine großen Entwurfsprobleme, sondern helfen beim Erkennen, Klassifizieren oder Diskutieren kleiner wiederkehrender Formen. In Forschung und Lehre werden sie häufig zur Analyse von Codebasen oder zur Beschreibung typischer Kleinmuster verwendet.
Der Begriff ist weniger normiert als die GoF-Terminologie. Je nach Quelle kann er sich auf Code-Idiome, kleinste OO-Strukturen oder Minimalmuster in Bibliotheken beziehen.
- https://en.wikipedia.org/wiki/Software_design_pattern
- https://refactoring.guru/design-patterns
- https://www.cs.purdue.edu/homes/xyzhang/spring08/6-designpatterns.pdf
O
Observer
Synonyme:
Beobachter, Publish-Subscribe (verwandt)
Kurz:
Definiert eine Eins-zu-viele-Abhängigkeit, sodass Beobachter bei Zustandsänderungen automatisch benachrichtigt werden.
Länger:
Observer entkoppelt ein beobachtbares Subjekt von einer Menge abhängiger Beobachter. Wenn sich der Zustand des Subjekts ändert, werden die registrierten Beobachter informiert und können reagieren.
Das Muster ist grundlegend für Ereignissysteme, GUI-Frameworks und reaktive Architekturen. In praktischen Implementierungen sind Themen wie Reihenfolge, Thread-Sicherheit, Lebensdauer und Speicherlecks wichtig.
P
Pattern Language
Synonyme:
Mustersprache, Patternsprache
Kurz:
Bezeichnet eine zusammenhängende Menge von Patterns, die sich gegenseitig ergänzen und in Beziehung zueinander stehen.
Länger:
Eine Pattern Language ist mehr als eine lose Liste einzelner Muster. Sie beschreibt, wie Patterns zusammenspielen, in welcher Reihenfolge oder unter welchen Randbedingungen sie eingesetzt werden und wie sich größere Lösungen aus mehreren Mustern zusammensetzen.
Der Begriff stammt historisch aus der Architekturtheorie und wurde in die Softwareentwicklung übertragen. Für Software ist er vor allem dann wichtig, wenn einzelne Patterns nicht isoliert, sondern als Teil eines Gestaltungsraums verstanden werden sollen.
Prototype
Synonyme:
Prototyp
Kurz:
Erzeugt neue Objekte durch Kopieren bestehender Instanzen.
Länger:
Prototype verwendet vorhandene Objekte als Vorlage für neue Instanzen. Dadurch kann die Erzeugung komplexer oder erst zur Laufzeit bekannter Objektarten vereinfacht werden.
Das Muster ist besonders hilfreich, wenn die konkrete Klasse dynamisch bestimmt wird oder wenn Initialisierung teuer ist. Eine wichtige Entwurfsfrage ist dabei, ob flache oder tiefe Kopien benötigt werden.
Proxy
Synonyme:
Stellvertreter
Kurz:
Stellt ein Platzhalterobjekt bereit, das den Zugriff auf ein anderes Objekt kontrolliert.
Länger:
Proxy führt eine Zwischenschicht vor dem eigentlichen Zielobjekt ein. Dadurch können Zugriff, Initialisierung, Caching, Sicherheitsprüfungen oder Remote-Kommunikation transparent gesteuert werden.
Das Muster ist verbreitet bei Lazy Loading, Remoting, Zugriffsschutz und virtuellen Ressourcen. Für Clients bleibt die Interaktion meist über dieselbe Schnittstelle erhalten.
S
Singleton
Synonyme:
Einzelstück
Kurz:
Stellt sicher, dass von einer Klasse nur eine Instanz existiert, und bietet einen globalen Zugriffspunkt darauf.
Länger:
Singleton kontrolliert Instanziierung und Zugriff auf eine zentrale Instanz. Historisch wurde das Muster oft für globale Konfiguration, Ressourcenmanager oder Registry-Objekte verwendet.
In moderner Softwareentwicklung wird Singleton allerdings kritisch betrachtet, weil es globale Zustände, verdeckte Abhängigkeiten und Testprobleme fördern kann. Daher wird seine Verwendung heute oft bewusst eingeschränkt.
State
Synonyme:
Zustand
Kurz:
Erlaubt einem Objekt, sein Verhalten in Abhängigkeit von seinem internen Zustand zu ändern.
Länger:
State kapselt zustandsspezifisches Verhalten in separaten Zustandsobjekten. Der Kontext delegiert Anfragen an den jeweils aktiven Zustand und kann sein Verhalten dadurch dynamisch ändern.
Das Muster macht komplexe Zustandslogik oft klarer als große Fallunterscheidungen. Es eignet sich besonders für Workflows, Protokolle, UI-Steuerungen und andere zustandsbehaftete Systeme.
Strategy
Synonyme:
Strategie
Kurz:
Kapselt austauschbare Algorithmen in separaten Objekten.
Länger:
Strategy definiert eine Familie von Algorithmen und macht sie unter einer gemeinsamen Schnittstelle austauschbar. Der Client kann die gewünschte Variante zur Laufzeit auswählen oder injizieren.
Damit wird Verhalten flexibel variierbar, ohne dass umfangreiche Verzweigungslogik in einer Klasse entsteht. Das Muster ist häufig in Sortierung, Validierung, Berechnung, Formatierung oder Routing zu finden.
T
Template Method
Synonyme:
Schablonenmethode
Kurz:
Definiert das Grundgerüst eines Algorithmus und überlässt einzelne Schritte Unterklassen.
Länger:
Template Method legt die Struktur eines Ablaufs in einer Basisklasse fest, während variable Schritte in Unterklassen konkretisiert oder überschrieben werden. Dadurch können gemeinsame Abläufe wiederverwendet und spezialisierte Varianten gezielt eingefügt werden.
Das Muster ist besonders nützlich in Frameworks und Klassenhierarchien mit kontrollierten Erweiterungspunkten. Es ist eng mit dem Hollywood-Prinzip verbunden: „Don’t call us, we’ll call you.“
- https://en.wikipedia.org/wiki/Template_method_pattern
- https://refactoring.guru/design-patterns/template-method
V
Visitor
Synonyme:
Besucher
Kurz:
Kapselt Operationen über Elementen einer Objektstruktur, ohne die Elementklassen selbst zu ändern.
Länger:
Visitor erlaubt, neue Operationen für eine bestehende Objektstruktur zu definieren, ohne die Klassen dieser Struktur anzupassen. Dazu akzeptieren die Elemente einen Besucher, der die konkrete Operation ausführt.
Das Muster ist nützlich, wenn eine stabile Objektstruktur viele unterschiedliche Auswertungen oder Transformationen benötigt. Nachteilig ist, dass neue Elementtypen das Besuchersystem meist stärker verändern als neue Operationen.
W
Wrapper
(siehe „Adapter“)