Cohesie, koppeling en scheiding van verantwoordelijkheden
Beheers drie fundamentele eigenschappen van softwareontwerp die bepalen of code onderhoudbaar blijft: hoge cohesie, lage koppeling en een duidelijke scheiding van verantwoordelijkheden.
Cohesie, koppeling en scheiding van verantwoordelijkheden is een gratis Clean Architecture en ontwerppatronen in de praktijk-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Clean Architecture en ontwerppatronen in de praktijk. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Clean Architecture en ontwerppatronen in de praktijk bevat in totaal 4 lessen.
Waarom deze eigenschappen belangrijk zijn
Onder clean code en SOLID liggen drie diepere ontwerpeigenschappen: cohesie, koppeling en scheiding van verantwoordelijkheden. Ze verklaren waarom de regels werken.
Wat is cohesie
Cohesie meet hoe goed de verantwoordelijkheden van een module bij elkaar horen. Hoge cohesie betekent één duidelijk omschreven taak; lage cohesie betekent een verzameling ongerelateerde methoden.
Lage versus hoge cohesie
Vergelijk de twee: de klasse Util combineert ongerelateerde aandachtspunten, terwijl UserRepository sterk gericht is. Die focus is hoge cohesie.
// Low cohesion
class Util {
saveUser() {}
sendEmail() {}
formatDate() {}
}
// High cohesion
class UserRepository {
save() {}
findById() {}
}Wat is koppeling
Koppeling meet in hoeverre de ene module afhankelijk is van de interne werking van een andere. Sterke koppeling verspreidt wijzigingen overal; losse koppeling houdt interacties minimaal.
Voorbeeld van sterke koppeling
Hier maakt OrderService zelf een SmtpMailer aan, waardoor de service aan precies die klasse wordt gebonden. Als je de mailer vervangt, moet je de service aanpassen — sterke koppeling.
class OrderService {
constructor() {
this.mailer = new SmtpMailer();
}
}De koppeling losser maken
Injecteer de mailer in plaats daarvan. Nu is OrderService afhankelijk van een abstractie en accepteert de service elke implementatie. Dat is losse koppeling.
class OrderService {
constructor(mailer) {
this.mailer = mailer;
}
}De ideale combinatie
De ideale combinatie is hoge cohesie en losse koppeling: gerichte modules die onafhankelijk blijven, zodat systemen eenvoudig te wijzigen, testen en begrijpen zijn.
Scheiding van verantwoordelijkheden
Scheiding van verantwoordelijkheden betekent dat je een programma opsplitst, waarbij elk onderdeel één duidelijk aandachtspunt beheert — houd de gebruikersinterface, bedrijfslogica en gegevenstoegang in afzonderlijke lagen.
Gemengde verantwoordelijkheden
Deze functie verweeft gegevenstoegang, logica en presentatie. Als je één aandachtspunt aanraakt, loop je het risico de andere te breken — gemengde verantwoordelijkheden.
function showTotal(id) {
const rows = db.query('SELECT * FROM orders WHERE id=' + id);
const total = rows.reduce((s, r) => s + r.price, 0);
document.body.innerHTML = 'Total: ' + total;
}Gescheiden verantwoordelijkheden
Splits dit op in een repository, een rekenmodule en een weergave. Elk aandachtspunt kan nu onafhankelijk worden gewijzigd en getest. Veel overzichtelijker.
const order = repository.findById(id);
const total = calculator.total(order);
view.render(total);Hoe ze aansluiten op SOLID
Deze eigenschappen vormen de basis van SOLID: het single-responsibilityprincipe bevordert cohesie, dependency inversion bevordert losse koppeling en gelaagdheid geeft uitdrukking aan de scheiding van verantwoordelijkheden.
Korte controle
Hoge cohesie, losse koppeling — kun je ze uit elkaar houden?
Samenvatting
Je kent nu de basis: cohesie houdt gerelateerd werk bij elkaar, losse koppeling beperkt afhankelijkheden en scheiding van verantwoordelijkheden deelt code op basis van doel.
Leer Clean Architecture en ontwerppatronen in de praktijk met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Cohesie, koppeling en scheiding van verantwoordelijkheden” gratis?
Ja — de volledige tekst van “Cohesie, koppeling en scheiding van verantwoordelijkheden” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Clean Architecture en ontwerppatronen in de praktijk wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Clean Architecture en ontwerppatronen in de praktijk bevat in totaal 4 lessen.
Wat leer ik in “Cohesie, koppeling en scheiding van verantwoordelijkheden”?
Beheers drie fundamentele eigenschappen van softwareontwerp die bepalen of code onderhoudbaar blijft: hoge cohesie, lage koppeling en een duidelijke scheiding van verantwoordelijkheden. Je oefent met Clean Architecture en ontwerppatronen in de praktijk door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Clean Architecture en ontwerppatronen in de praktijk te beginnen?
Ervaring vooraf is niet nodig. Clean Architecture en ontwerppatronen in de praktijk op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Cohesie, koppeling en scheiding van verantwoordelijkheden”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Clean Architecture en ontwerppatronen in de praktijk?
Ja. Elke les over Clean Architecture en ontwerppatronen in de praktijk bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Kennismaking met Clean Code
- Overzicht van SOLID-principes
- De waarde van goed ontwerp
- Cohesie, koppeling en scheiding van verantwoordelijkheden