C'est marrant, je réfléchissais à cela, tout à l'heure, et je me disais que l'alternative à l'héritage était peut être l'utilisation de conteneurs "non typés" (à la boost any).
Un des avantages de cette approche, c'est qu'un même widget peut appartenir à plusieurs hiérarchies de conteneurs, ce qui revient à avoir plusieurs composites différents (ownership, pointage, dessin...)
Du coup, je me demande si on ne pourrait pas généraliser cela... Par exemple en se disant que les "primitives de bases" au lieu d'être des traits ou des fonctions membres, pourraient être des fonctions génériques, qui s'appliquent à des conteneurs de "widgets concernés". Peut être qu'on pourrait, comme cela, séparer des caractéristiques "internes et obligatoires" du widget (rendues par des membres à la compilation), de certaines caractéristiques "externes et facultatives", implémentées via des conteneurs à l'exécution...
Francois
Partager