05-06-2015, 03:29 PM
Foisonnement de méthode...
OK.
C'est quoi le plus simple à modifier ou lire :
Donc :
Ou :
Qui donne :
Et donc 100% de ton code repose sur des interfaces.
Donc foisonnement de if vs méthode avec interface.
Il n'y a pas photo. Le second est beaucoup plus safe.
OK.
C'est quoi le plus simple à modifier ou lire :
class Conan implements Hero
{
public askGold($object)
{
if ($object instanceof Beggar) {
$object->giveGold($this->gold/2);
}
if ($object instanceof Kid) {
$object->giveGold($this->gold);
}
if ($object instanceof Women) {
$object->giveGold($this->gold * 10);
}
}
}
Donc :
class Conan implements Hero
{
public askGold($object);
}
Ou :
class Conan implements Hero
{
public function askGoldByBeggar(Beggar $beggar)
{
$beggar->giveGold($this->gold/2);
}
public function askGoldByKid(Kid $kid)
{
$kid->giveGold($this->gold);
}
public function askGoldByWomen(Women $women)
{
$women->giveGold($this->gold * 10);
}
}
Qui donne :
class Conan implements Hero
{
public function askGoldByBeggar(Beggar $beggar);
public function askGoldByKid(Kid $kid);
public function askGoldByWomen(Women $women);
}
Et donc 100% de ton code repose sur des interfaces.
Donc foisonnement de if vs méthode avec interface.
Il n'y a pas photo. Le second est beaucoup plus safe.