Organisations mixtes
Le dernier exemple de la section précédente a montré l'intérêt qu'il y avait
à mixer les deux modèles pour le problème de l'extensibilité des composants.
On propose maintenant de mixer modules paramétrés et liaison retardée pour profiter
de la puissance de ces deux traits. L'application du foncteur produira
de nouveaux modules contenant des classes utilisant le type et les
fonctions du module paramètre. Si, de surcroît, la signature obtenue est
compatible avec la signature du module paramètre, il est alors
possible de réappliquer le module paramétré sur le module résultat, permettant ainsi de construire automatiquement de nouvelles classes.
Un exemple complet est donné dans la dernière partie de cet
ouvrage qui est consacrée aux programmes concurrents et/ou
distribués (page ??). Nous utilisons un
foncteur pour engendrer un protocole de communication à partir d'un
type donné; un second foncteur permet ensuite de déduire de ce
protocole une classe implantant un serveur générique traitant des
requêtes exprimées dans ce protocole. L'héritage peut ensuite être
utilisé pour spécialiser le serveur vers ce qui est réellement
le service attendu.