Type : | Co (Comportemental) |
Intention : | Fait la représentation d'une opération applicable aux éléments d'une structure d'objet. Il définit une nouvelle opération, sans qu'il soit nécessaire de modifier la classe des éléments sur lesquels elle agit. |
Applicabilité : | Utilisez le Visiteur dans les circonstances suivantes : - Une structure d'objets contient beaucoup de classes différentes d'interfaces distinctes, et vous désirez réaliser des opérations sur ces objets qui dépendent de leurs classes concrètes. - Il s'agit d'effectuer plusieurs opérations distinctes et sans relation entre elles, sur les objets d'une structure, et ceci en évitant de polluer leurs classes avec ces opérations. Le Visiteur permet de grouper toutes les opérations du même type dans une seule classe. Quand la structure est partagée par plusieurs applications, on utilisera le Visiteur pour placer les opérations dans celles des applications, qui seules en ont besoin. - Les classes qui définissent la structure objet changent rarement, mais on doit souvent définir de nouvelles opérations sur cette structure. Modifier les classes de la structure impose de redéfinir l'interface avec tous les visiteurs, ce qui peut être coûteux. Si les classes de la structure d'objets changent souvent, il est sans doute préférable de définir les opérations dans ces classes. |