Entwurfsmuster vs. Architekturpattern
Dieser Beitrag ist eine Begriffserklärung zum Unterschied zwischen Entwurfsmustern und Architekturpattern – inklusive Prüfungsfragen und Tags.
In a Nutshell
Entwurfsmuster lösen wiederkehrende Probleme im Code auf Klassen-/Objektebene. Architekturpattern strukturieren die Gesamtanwendung auf höherer Ebene.
Kompakte Fachbeschreibung
- Entwurfsmuster (Design Patterns): taktische Lösungen (z.B. Singleton, Factory, Observer).
- Architekturpattern: strategische Makrostruktur (z.B. MVC, Layered/n-Tier, Microservices).
Beide verbessern Wartbarkeit und Wiederverwendbarkeit, aber auf unterschiedlichen Ebenen.
Prüfungsrelevante Stichpunkte
- Entwurfsmuster = Klassenebene
- Architekturpattern = Systemebene
- Design Patterns sind oft Teil von Architekturpattern
- Architekturentscheidungen beeinflussen Skalierung/Kosten (IHK-relevant)
- Beides muss begründet und dokumentiert werden
Kernkomponenten
- GoF-Patterns
- Erzeugungs-/Struktur-/Verhaltensmuster
- MVC
- Layered Architecture
- Microservices
- EDA
- DDD
- UML-Dokumentation
Praxisbeispiel
// Entwurfsmuster: Factory
class UserFactory {
public static User create(String name) {
return new User(name);
}
}
// Architekturpattern: MVC
// Model = User.java, View = Frontend, Controller = Routing
Vorteile und Nachteile
Vorteile
- Bessere Lesbarkeit/Wiederverwendung (Entwurfsmuster)
- Bessere Teamarbeit/Wartung (Architekturpattern)
Nachteile
- Falscher Einsatz führt zu Overengineering
- Architekturpattern erhöhen Initialaufwand
Typische Prüfungsfragen (mit Kurzantwort)
- Was ist ein Entwurfsmuster? Wiederverwendbare Lösung auf Klassenebene.
- Was ist ein Architekturpattern? Strukturansatz für die gesamte Software.
- Wie hängen beide zusammen? Entwurfsmuster werden innerhalb einer Architektur genutzt.
Freie Antwort
In Prüfungen ist wichtig, zu erkennen, ob nach einer Lösung auf Codeebene oder nach der Gesamtstruktur gefragt wird. Eine gute Architektur nutzt passende Entwurfsmuster, ohne unnötige Komplexität.
Lernstrategie
- Patterns auf Refactoring.Guru lesen.
- UML für ein Entwurfsmuster und ein Architekturpattern zeichnen.
- An Beispielen klassifizieren (Design vs Architektur).
- Patternitis vermeiden.
Themenanalyse
- Kern: Strukturierung
- Herausforderungen: Komplexität
- Sicherheit: Schichtentrennung
- Doku: Diagramme/Begründung
- Wirtschaftlichkeit: langfristige Wartung