05-06-2015, 03:38 PM
(05-06-2015, 03:29 PM)niahoo a écrit :Citation :en West tu fais ce que tu veux, donc généralement du code crade ou lorsque tu modifies une classe tu dois regarde les autres classes qui l'utilise pour ne rien casser..
Heuuu je vais dire un truc gamin mais prends pas ton cas pour une généralité ... Fondamentalement ça ne change rien, un objet va faire sa vie de son côté puisque il est encapsulé dans son espace propre. Non parce que dans ton exemple,giveGold
si c'est pas un setter moi je pige que dalle.
En East on aura :
public function giveGoldByHero(Gold $gold, Hero $hero);
Ca n'est pas un setter parce que je ne dis pas à Beggar ce qu'il doit faire de l'or.
Il peut très bien avoir une méthode vide et ne rien en faire.
Ou si l'interface de Hero le stipule quelque chose du genre : $hero->injury($this);
Donc je dis juste "moi $hero je te donne $gold", le Beggar en fait ce qu'il veut.
En West ton objet va faire getGold() au lieu de askGold() c'est lui qui impose le format de sortie.
Moi Beggar je dois m'y conformer je n'ai pas le choix, c'est une chose.
Et une seconde chose, j'impose au Hero de me retourner de l'or, soit 0 soit plus.
Mais je ne lui laisse pas la liberter de faire ce qu'il veut. Donc mon code est moins souple.