Junior — Middle
Kunt u een voorbeeld geven van wanneer het scheiden van interfaces gerechtvaardigd is in een project?
sobes.tech AI
Antwoord van AI
Het scheiden van interfaces is gerechtvaardigd wanneer je een grote interface hebt met veel methoden die niet altijd nodig zijn voor alle clients. Bijvoorbeeld, in een iOS-project kun je een protocol opsplitsen in meerdere meer gerichte protocollen, zodat verschillende klassen alleen de methoden implementeren die ze echt nodig hebben. Dit verbetert de leesbaarheid van de code en maakt onderhoud gemakkelijker.
Voorbeeld: er is een protocol MediaPlayable met de methoden play(), pause(), stop(), record(). Als een klasse alleen verantwoordelijk is voor afspelen, hoeft deze record() niet te implementeren. Dan kun je het opsplitsen in twee protocollen:
protocol MediaPlayable {
func play()
func pause()
func stop()
}
protocol MediaRecordable {
func record()
}
Zo implementeren klassen alleen de interfaces die ze nodig hebben.