Q-SOLID: Questions sur les principes SOLID

Questions en vrac

Q1: Essayez d’inventer un exemple dans le monde réel qui illustre le DIP.

Q2: Quel est le lien entre le polymorphisme et le DIP?

Q3: Trouvez un exemple (fictif ou dans un projet) où le SRP et le DIP ne sont pas respectés.

Q4: Quel est le lien entre l’OCP et le polymorphisme?

Q5: Quel est le lien entre l’OCP et l’effet d’avalanche?

Q6: Si on respectait toujours à 100% l’OCP, quel en serait l’impact?

Q7: Quelle est la différence entre l’OCP et le TDA?

Q8: Quelle est la différence entre “Dependency Inversion Principle” et “Dependency Injection”. Comment est-ce que les deux sont liés? Cherchez les patterns “Dependency Injection” et “Inversion of Control” sur Internet.

Q9: Est-ce possible de ne pas respecter le DIP même si notre classe ne dépend que d’interfaces?

Solutions

Q1

Plusieurs réponses possibles

Q2

Aucune réponse ne sera donnée mais nous vous invitons à revoir tout ce que nous avons vu à propos des abstractions, contrats ainsi que le polymorphisme depuis la semaine 1. Ensuite, discutez de cette question avec vos collègues.

Q3

Plusieurs réponses possibles

Q4

Indices: plugins ; qui risque d’être modifié? ; sens de la flèche …

Q5

Pour répondre à cette question, vous devez en premier répondre à Q4. Ensuite, vous pouvez extrapoler à partir de l’effet d’avalanche et le polymorphisme.

Q6

Complexité.

Mais en fait ça serait simplement impossible en raison de la définition de l’OCP.

Q7

Aucune réponse ne sera donnée

Q8

Nous vous invitons à chercher sur Internet. En fait,outre que les deux sont en lien avec des dépendances, l’un est un principe alors que l’autre est plus un mécanisme. Faire attention de ne pas les confondre malgré la similitude de leurs noms. Assurez-vous de comprendre les deux concepts.

Q9

Oui. Indice: voir la définition du DIP qui comporte 3 éléments.