Skip to main content

Adaptateur

Le patron de l'adaptateur sert à faire collaborer des objets qui ont une interface incompatible.

2023-10-03_22-31-41_screenshot.png

Le fonctionnement est que l'on crée des classes adaptateurs entre une interface et un service.

Voici un exemple :

2023-10-03_22-33-04_screenshot.png

Dans cet exemple, l'Examinator est notre client, il utilise l'interface "ExamResultRepository". Les classes CsvExamResultRepository et SqlExamResultRepository sont les adaptateurs qui implémente l'interface.

Ces adaptateurs vont ensuite utiliser les services appropriés, dans le cas présent, les fonctions de java.nio et java.sql. Cela permet ainsi de séparer les préoccupations, de programmer avec des interfaces et d'éviter l'héritage.

Cependant ce patron a le désavantage que si il est utilisé de manière appropriée il peut complexifier le code, il faut donc d'abord se demander si il n'est pas plus simple de changer directement les services pour les faire utiliser une interface commune, plus-tôt que de créer des adaptateurs (voir Conception et découverte du patron Strategie. Dans le cas de l'exemple, les adaptateurs sont une bonne idée car on ne peut pas modifier les services qui font simplement partie du JDK.