05-06-2015, 03:56 PM
(05-06-2015, 03:49 PM)Xenos a écrit :Citation :Plus de condition, mon code est bien plus simple à tester et faire évoluer.
Je voudrai bien savoir comment ton code gérerait le cas "Je ne donne de l'or que si c'est un Humain et si ce n'est pas un Kid".
Mieux vaut 1 méthode de 100 lignes que 100 méthodes de 1 quand il s'agit de masquer les décisions internes de la classe.
Si je veux me faire passer pour un autre, avec ma méthode je peux (l'appelant créer juste un KidProxy par exemple et le passe à Conan).
Mais moi aussi je dis avec quel objet je sais travailler. Cela n'a pas de rapport avec comment je vais travailler avec cet objet.
Tu as:
Code :public askGoldByKid(Kid);
public askGoldByBeggar(Beggar);
public askGoldByFemme(Femme);
Ce que l'appelant veut, c'est juste "askGold", non? Si la classe appelante est un Kid+Beggar+Femme, comment sait-elle ce qu'elle doit appeler?
Tu peux très bien faire un KidProxy en East aussi rien ne t'y empêches.
La classe appelante décide comment se présenter au Héro, j'en ai déjà parlé dans les pages précédentes.
C'est typiquement le cas d'un Policier en civile qui se présente à une personne, c'est le Policier qui décide de se présenter comme un Civile ou un Poçlicier, c'est pas la personne qui va le décider.