05-06-2015, 04:43 PM
(05-06-2015, 04:35 PM)Xenos a écrit : Ouep, tu dois retourner du Gold parce que t'as choisi d'implémenter l'interface avec un return Gold. La classe respecte le contrat qu'elle a choisi de passer, c'est pas une bonne chose ?Si, le seul soucis, c'est que ta méthode ne peut plus rien faire d'autre.
(05-06-2015, 04:35 PM)Xenos a écrit : Non, le Kid rentre en dialogue exclusif avec un nouveau Hero (le clone), pas avec le Hero qu'il a appelé (si on parlait en pointeurs, on le verrait direct).Il est donc bien en dialogue exclusif avec le Héro copie ou non, dans le sens ou lui seul connait cet instance de Héro et lui seul peut agir avec lui, c'est donc bien un dialogue exclusif non ?
(05-06-2015, 04:35 PM)Xenos a écrit : Je suis d'accord, il n'y a pas de problème technique de fond. Juste que East ajoute beaucoup de méthodes publiques (tout autant de maintenance et de risque de cassure), utilisées généralement par un seul point du code. T'as le droit de décomposer la grosse méthode en méthodes private pour l'alléger.Oui bien d'accord. Mais si tu mets un getter, au final tu ne laisses pas vraiment au Héro de décider ce qu'il doit faire.
Y'a pas de rapport entre East et les interfaces: tu peux faire du bon West en faisant 100% d'interfaces. East, c'est pas l'interface seggregation.
Comment tu fais pour que le Héro mette un coup de poing à Kid si il est mal luné ?
if ($hero->badMood() === true) {
$kid->kickedBy($hero);
} else {
$kid->giveGold($hero->getGold());
}
Un truc du genre non ? Au final l'algo de ton Hero est en dehors de ton Hero :/
(05-06-2015, 04:35 PM)Xenos a écrit : J'attends toujours que tu me montres ton code pour faire "Hero donne 1x son or à Kid, 0.1x à Beggar, 2x à Femme, et 3x à Beggar+Kid+Femme".
J'ai donné un exemple Beggar + Femme, tu as qu'à extrapoler pour le reste