Comme je m'attends à une bonne dose de mauvaise foi, je complète :
« Je vais même te donner un exemple plus plus simple que je ne pensais au départ : une classe qui implémente proprement plusieurs interfaces. C'est possible en C++, c'est impossible en Java (on ne peut le faire que pour une interface). Proprement, bien sûr, c'est à dire que l'interface inclue le code de vérification pré/post condition. »
Pour résumer simplement, plutot que d'entrer dans chaque détail : C++ a ce qu'il faut pour faire des contrats. L'approche Java des fonctions virtuelles pose problème, entre autres par l'absence de fonctions virtuelles privées.
Bien sûr la solution encore plus propre c'était d'intégrer les contrats au langage, c'est même ce que Gosling aurait souhaité. Mais au final ça n'y est pas, et il n'y a pas de solution pour faire les choses proprement.
[^] # Re: Des utilisateurs heureux de Java
Posté par #3588 . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à -1.
« Je vais même te donner un exemple plus plus simple que je ne pensais au départ : une classe qui implémente proprement plusieurs interfaces. C'est possible en C++, c'est impossible en Java (on ne peut le faire que pour une interface). Proprement, bien sûr, c'est à dire que l'interface inclue le code de vérification pré/post condition. »
Pour résumer simplement, plutot que d'entrer dans chaque détail : C++ a ce qu'il faut pour faire des contrats. L'approche Java des fonctions virtuelles pose problème, entre autres par l'absence de fonctions virtuelles privées.
Bien sûr la solution encore plus propre c'était d'intégrer les contrats au langage, c'est même ce que Gosling aurait souhaité. Mais au final ça n'y est pas, et il n'y a pas de solution pour faire les choses proprement.