et du coup, suivant mon exemple
Voilà. Et si tu crées une interface par composition, par exemple Hero/Kid alors je n'utiliserai jamais une de tes librairies !
class Barbarian implements Hero {
private $beggarIsWoman, $beggarIsKid, $beggarIsJudoka;
public function askGold(Beggar $beggar) {
$beggar->areYouAWomanByHero($this);
$beggar->areYouAKidByHero($this);
$beggar->areYouAJudokaByHero($this);
// ... Calcul de la somme en fonction de
// $this->beggarIsWoman, $beggarIsKid->isKid, $beggarIsJudoka->isJudoka
$thunes = ...;
$beggar->giveGold(new Gold($thunes))
}
}
Voilà. Et si tu crées une interface par composition, par exemple Hero/Kid alors je n'utiliserai jamais une de tes librairies !