05-06-2015, 03:54 PM
(05-06-2015, 03:46 PM)Xenos a écrit :Citation :Moi Beggar je dois m'y conformer je n'ai pas le choix, c'est une chose.Ben oui, puisque tu as implémenté l'interface en question... ?!
Rah... Si tu vires le instanceof tu gères toujours Kid, puisque la signature de méthode n'a pas changé. C'est seulement l'algorithme interne de la méthode qui change et qui ne fait plus de distinction entre Kid et le reste des objets. Du coup, oui, tu dois lire la doc pour savoir que l'objet, parce qu'il décide de faire comme ça, ne va plus donner de fric à Kid.
T'as rien cassé de l'extérieur, t'as juste changé les décisions que la classe appelée prend.
Merci niahoo pour la séparation entre East (no return) et le reste du débat
Je peux très bien avoir implémenter l'interface Beggar mais que mon objet en particulier refuse de l'or.
Concernant Kid, donc oui tu avais un système ou tes Kid recevaient de l'argent à chaque fois qu'ils rencontrent un Hero.
Soudain ton programme bug, un bug vicieux car tes Kids ne recoivent plus d'argent quand ils rencontrent un Hero.
Pourquoi ? Car le Hero ne gère plus, ça n'est pas ce qu'il décide de ne pas donner de l'argent à un Kid, c'est qu'il ne GERE PLUS un Kid.
Ca peut donc soit être une feature voulu, soit un comportement imprévu. Tu peux être dans les deux cas.
En East tu ne peux pas avoir ce cas. Vu que tu DOIS implémenter la méthode askGoldByKid, si tu la mets vide tu sais PERTINEMENT que tu décides de ne rien faire quand un Kid te demande de l'argent.