Je pense que ce qui suit ne peut pas être fait en Java. Mais je serais heureux d'apprendre à mettre en œuvre quelque chose qui lui ressemble. Supposons que nous ayons une classe C, déjà utilisée dans le code compilé.mettre en œuvre des interfaces après le fait
(Nous ne pouvons pas changer ce code ni la définition originale de C). Supposons en outre qu'il y ait un code intéressant qui pourrait être réutilisé, si seulement C mettait en oeuvre l'interface I. Il est, en fait, plus ou moins trivial de dériver D c'est juste C + l'implémentation des méthodes d'interface.
Pourtant, il semble qu'il n'y a aucun moyen, une fois que j'ai un C, pour dire: Je veux que vous soyez un D, qui est une C mise en œuvre I.
(remarque Side: Je pense que le casting (D) c, où le type d'exécution de C est C, devrait être autorisé si D est un C et la seule différence avec C sont des méthodes ajoutées.Cela devrait être sûr, n'est-ce pas?)
Comment pourrait-on contourner ce problème? calamité?
(Je connais le modèle de conception d'usine, mais ce n'est pas une solution, car une fois que nous réussissons à créer D dans tous les endroits où C étaient auparavant, quelqu'un d'autre trouve une autre interface J utile et dérive E C implémente J. Mais E et D sont incompatibles, puisqu'ils ajoutent tous deux un ensemble de méthodes différent de C. Donc, bien que nous puissions toujours passer un E où C est attendu, nous ne pouvons pas passer un E où D est attendu. On aurait plutôt besoin d'une nouvelle classe F extends C implements I, J.)
Cela semble assez complexe, mais je vais certainement essayer. Pouvez-vous dire quelque chose sur le coût d'exécution, c'est-à-dire que j'ai besoin d'une instance de gestionnaire d'invocations supplémentaire par objet. – Ingo
La méthode déléguée serait beaucoup plus simple, ceci ajoute de la complexité sans aucun bénéfice pour ce problème particulier. – Robin
ma pensée était qu'une autre solution était nécessaire autre que l'application du modèle d'adaptateur spécifiquement une solution d'exécution. peut-être une mauvaise interprétation – MahdeTo