Liskovs substitusjonsprinsipp

Et prinsipp som kan minne om Åpen/lukket-prinsippet er Liskovs substitusjonsprinsipp [«Liskov substitution principle» (LSP) på engelsk], men dette prinsippet handler egentlig mer om hva instanser av underklasser skal kunne gjøre.

Helt konkret sier prinsippet at hvis klasse B arver fra klasse A, så skal instanser av B kunne erstatte instanser av A, uten at dette byr på problemer.

Et mye brukt eksempel:

Hvis en klasse for (geometrisk) kvadrat arver fra en klasse for rektangel må man forholde seg til bredde og lengde selv om alle sider i et kvadrat er like lange. Dette blir litt kleint fordi det er sidelengde som burde vært brukt.

Hvis bredde og lengde likevel brukes er det naturlig at begge settes til samme verdi, men da kan ikke en kvadratinstans lenger erstatte en rektangelinstans. Og dette bryter da med Liskovs substitusjonsprinsipp.

LSP er det tredje viktige designmønsteret i SOLID.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.