Ok je continue mon explication, si je fais ça :
Est-ce que tu vois un problème se profiler ?
interface Hero
{
public function askGold($object);
}
interface Beggar
{
public function meetHero(Hero $hero);
}
class Conan implements Hero
{
public askGold($object)
{
if ($object instanceof Beggar) {
$object->giveGold($this->gold/2);
}
if ($object instanceof Kid) {
$object->giveGold($this->gold);
}
}
}
class FrancoisdAssise implements Beggar
{
public function meetHero(Hero $hero)
{
$hero->askGold($this);
}
}
$conan = new Conan();
$francoisdAssise = new FrancoisdAssise();
$francoisdAssise->meetHero($conan);
Est-ce que tu vois un problème se profiler ?