Niedrig
Modularisierung
Kopplung und Kohäsion als Qualitätsmerkmale.
Warum Priorität „Niedrig"? Selten oder als Randthema (unter 40%). Überblick reicht meist.
Lernziele
- Kopplung und Kohäsion unterscheiden
- SOLID-Prinzipien benennen
- Cross-Cutting Concerns erkennen
Qualitätskriterien
- Kopplung (lose = gut, fest = schlecht): wenige, klare Abhängigkeiten über Schnittstellen.
- Kohäsion (hoch = gut, niedrig = schlecht): ein Modul tut genau eine Sache.
- Merksatz: «Hohe Kohäsion, lose Kopplung».
SOLID
- Single Responsibility – eine Klasse, ein Grund zur Änderung.
- Open / Closed – offen für Erweiterung, geschlossen für Modifikation.
- Liskov Substitution – Unterklasse muss Oberklasse ersetzen können.
- Interface Segregation – kleine, fokussierte Schnittstellen.
- Dependency Inversion – Abhängigkeiten auf Abstraktionen, nicht auf Details.
pseudocodeschlecht vs. gut (DIP)
// schlecht – feste Kopplung
KLASSE Rechnung
METHODE speichern()
neu MySqlRepo().save(this)
ENDE
// gut – lose Kopplung, Abstraktion
KLASSE Rechnung(repo: Repository)
METHODE speichern()
repo.save(this)
ENDECross-Cutting Concerns
Belange, die viele Module betreffen: Logging, Security, Transaktionen, Caching. Lösung zentral über Aspekte (AOP), Middleware oder Interceptoren.
Übungen
Eine AntwortWelches Ziel gilt als Qualitätsmerkmal guter Modularisierung?
Eine AntwortWas besagt das Dependency-Inversion-Prinzip (DIP)?