Design Principles Flashcards
(16 cards)
Wat houdt het principe ‘Encapsulate what varies’ in?
Het scheiden van delen die waarschijnlijk zullen veranderen van stabiele delen in de code.
Voordelen zijn onder andere beheersbaarheid, flexibiliteit, makkelijker testen, herbruikbaarheid en ondersteuning van abstractie.
Noem drie voordelen van ‘Encapsulate what varies’.
- Beheersbaarheid en Veiligheid
- Flexibiliteit bij verandering
- Makkelijker testen en debuggen
- Herbruikbaarheid en Modulariteit
- Ondersteunt abstractie
Wat is het ‘Single Responsibility Principle’ (SRP)?
Een klasse moet slechts één verantwoordelijkheid hebben of één reden om te veranderen.
Dit zorgt ervoor dat alle methoden en eigenschappen van de klasse direct gerelateerd zijn aan die verantwoordelijkheid.
Noem vier voordelen van het ‘Single Responsibility Principle’.
- Betere Onderhoudbaarheid
- Verbeterde Leesbaarheid en Begrijpbaarheid
- Hogere Testbaarheid
- Betere Herbruikbaarheid
- Lagere koppeling & Hogere Cohesie
Wat suggereert het principe ‘Favor Composition over Inheritance’?
Samenstelling (composition) heeft de voorkeur boven overerving (inheritance).
Dit helpt bij het creëren van flexibele en herbruikbare objecten.
Noem twee voordelen van ‘Favor Composition over Inheritance’.
- Flexibiliteit
- Vermijden van Problemen met Meervoudige Overerving
- Losse Koppeling
- Hogere herbruikbaarheid
- Bevordering van encapsulatie
Wat houdt het principe ‘Only talk to your friends’ in?
Een object moet alleen direct communiceren met zijn directe vrienden, zoals eigen velden en methoden.
Dit vermindert afhankelijkheden en versterkt encapsulatie.
Noem twee voordelen van het principe ‘Only talk to your friends’.
- Vermindert Koppeling
- Verbeterde Encapsulatie
- Grotere onderhoudbaarheid
Wat betekent ‘Strive for loosely coupled designs between objects that interact’?
Componenten van een systeem moeten zo onafhankelijk mogelijk van elkaar werken. Verandereingen in één component moeten zo min mogelijk tot geen impact hebben op andere componenten.
Dit zorgt ervoor dat veranderingen in één component minimale impact hebben op andere componenten.
Noem drie voordelen van losse koppeling tussen objecten.
- Flexibiliteit
- Onderhoudbaarheid
- Herbruikbaarheid
- Testbaarheid
Wat is een voorbeeld van een slechte implementatie van losse koppeling?
Een klasse die zelf een instantie van een andere klasse aanmaakt.
Dit leidt tot strakke koppeling.
Wat is een goede aanpak voor het bereiken van losse koppeling?
Gebruik van interfaces en abstracties om interacties te definiëren.
Dit zorgt ervoor dat objecten elkaar niet rechtstreeks kennen.
Vul in: Een klasse moet slechts één _______ hebben of één reden om te veranderen.
[verantwoordelijkheid]
Vul in: ‘Favor composition over inheritance’ suggereert dat samenstelling de voorkeur heeft boven _______.
[overerving]
Vul in: Het principe ‘Only talk to your friends’ minimaliseert de _______ tussen objecten.
[afhankelijkheden]
Vul in: Losse koppeling betekent dat componenten van een systeem zo _______ mogelijk van elkaar werken.
[onafhankelijk]