E-VEHI-1 : Liskov substitution principle

:timer_clock: 10 minutes

Exercice

Basez-vous sur le code dans le dossier solid-lsp de ce repository

Ce principe est souvent mal compris. Si vous en avez besoin, prenez le temps de chercher sur internet et de poser des questions avant de commencer.

On vous donne un configurateur de véhicules. Celui-ci prend n’importe quel type de véhicule et le configure (change la couleur, la longueur, etc).

Certains véhicules ont une logique supplémentaire suite à ces changements (par exemple, la largeur d’un automobile est toujours la moitié de sa longueur (ce qui est faux dans la vraie vie, bien sur)).

Vous devez ajouter une option de configuration supplémentaire : le nombre de roues. Un bateau n’a bien sûr pas de roues, ce n’est donc pas logique de faire cette configuration.

Comment pouvez-vous faire pour garder un configurateur de véhicule générique, si c’est possible?

Solution

Cet exercice n’a pas de solution dans la branche solution du repository, mais c’est voulu. Pourquoi?