Het LSP heeft te maken met sub classes. Om het Liskov Substitution Principle correct toe te passen moeten alle sub classes vervangen kunnen worden door hun base class zonder dat de aanroepende code hier iets van merkt of aanpassingen hier voor hoeft te doen. Een bekend voorbeeld dat vaak als voorbeeld wordt gebruikt om dit principe toe te lichten gaat over een rechthoek en een vierkant. De rechthoek is de base class en de vierkant de sub class. Omdat de vierkant de base class is, betekent dit dat hij o.a. de methodes SetWidth en SetHeight heeft overgenemen. Maar dit is overbodig voor een vierkant. Voor een vierkant hoeft alleen maar de size te worden opgegeven omdat natuurlijk alle kanten gelijk zijn. De oplossing voor dit stuk is om vierkant niet te laten erven van rechthoek. Het worden dus beide aparte classes, zodat geen trucks hoeven te worden uitgehaald om alles logisch te maken en werkend te krijgen. Hiermee voorkom je dus ook ruis in de code. Met de volgende checks kun ...
Reacties
Een reactie posten