Software-Muster jenseits von GoF
53 Entwurfs- und Architekturmuster, die nicht im GoF-Buch stehen – in sieben Kapiteln mit Diagrammen, die meisten mit lauffähigem Java 21.
53 weitere Entwurfs- und Architekturmuster, die nicht im GoF-Buch stehen, aber in der Praxis genauso verbreitet sind: von Dependency Injection über Domain-Driven Design und Nebenläufigkeit bis zu Microservices. Jedes Muster mit Diagramm und Erklärung, die meisten mit einem lauffähigen Beispiel in Java 21 (Spalte „Java“). Die Beispiele lassen sich ohne Build-Tool starten, etwa mit java CircuitBreaker.java.
Erzeugung und Objektverwaltung
| 1 | Dependency Injection | Abhängigkeiten übergeben | Java |
| 2 | Service Locator | Dienstverzeichnis | Java |
| 3 | Object Pool | Objektpool | Java |
| 4 | Lazy Initialization | Verzögerte Erzeugung | Java |
| 5 | Multiton | Eine Instanz pro Schlüssel | Java |
| 6 | Static Factory Method | Statische Fabrikmethode | Java |
Struktur und Verhalten im Kleinen
| 7 | Null Object | Nullobjekt | Java |
| 8 | Value Object | Wertobjekt | Java |
| 9 | Fluent Interface | Flüssige Schnittstelle | Java |
| 10 | Specification | Spezifikation | Java |
| 11 | Type Object | Typobjekt | Java |
| 12 | Extension Object | Erweiterungsobjekt | Java |
| 13 | Mixin / Trait | Beimischung | Java |
Datenzugriff
| 14 | Repository | Ablage | Java |
| 15 | Data Access Object (DAO) | Datenzugriffsobjekt | Java |
| 16 | Active Record | Aktiver Datensatz | Java |
| 17 | Data Mapper | Datenabbilder | Java |
| 18 | Unit of Work | Arbeitseinheit | Java |
| 19 | Identity Map | Identitätstabelle | Java |
| 20 | Lazy Load | Nachladen bei Bedarf | Java |
| 21 | Data Transfer Object (DTO) | Transferobjekt | Java |
Domain-Driven Design
| 22 | Entity | Entität | Java |
| 23 | Aggregate | Aggregat | Java |
| 24 | Domain Event | Fachereignis | Java |
| 25 | Domain Service | Fachdienst | Java |
| 26 | Anti-Corruption Layer | Schutzschicht | Java |
Architektur
| 27 | Layers | Schichtenarchitektur | |
| 28 | Model-View-Controller | MVC, MVP und MVVM | Java |
| 29 | Hexagonal Architecture | Ports und Adapter | Java |
| 30 | Pipes and Filters | Röhren und Filter | |
| 31 | Broker | Vermittler | |
| 32 | Microkernel / Plugin | Mikrokern | Java |
| 33 | Blackboard | Wandtafel | Java |
| 34 | Event Sourcing | Ereignisspeicherung | Java |
| 35 | CQRS | Trennung von Befehl und Abfrage | Java |
Nebenläufigkeit
| 36 | Producer-Consumer | Erzeuger und Verbraucher | Java |
| 37 | Thread Pool | Thread-Pool | Java |
| 38 | Future / Promise | Zukünftiges Ergebnis | Java |
| 39 | Active Object | Aktives Objekt | Java |
| 40 | Monitor Object | Monitorobjekt | Java |
| 41 | Read-Write Lock | Lese-Schreib-Sperre | Java |
| 42 | Reactor | Ereignisverteiler | Java |
| 43 | Balking / Guarded Suspension | Abbrechen oder Warten | Java |
| 44 | Immutable Object | Unveränderliches Objekt | Java |
Verteilte Systeme
| 45 | Circuit Breaker | Sicherung | Java |
| 46 | Retry mit Backoff | Wiederholung mit Wartezeit | Java |
| 47 | Bulkhead | Schott | Java |
| 48 | Saga | Folge lokaler Transaktionen | Java |
| 49 | API Gateway | Zugangstor | Java |
| 50 | Transactional Outbox | Ausgangskorb | Java |
| 51 | Strangler Fig | Würgefeige | Java |
| 52 | Sidecar | Beiwagen | |
| 53 | Publish-Subscribe / Message Bus | Veröffentlichen und Abonnieren |