Je suis encore un novice quand il s'agit de polymorphisme, donc j'espère pouvoir formuler ma question correctement.OO Design: Renvoyer une classe enfant d'un parent
Disons que j'ai des tables dans ma base de données - chien, chat et souris. Je veux être en mesure d'appeler quelque chose comme:
$animal = new Animal("dog", 12);
avec la classe des animaux étant quelque chose comme:
class Animal {
protected $id;
protected $legs;
protected $height;
function __construct($type, $id) {
if ($type == "dog") {
return new Dog($id);
}
}
}
class Dog extends Animal {
function __construct($id) {
$this->id = $id;
$this->legs = 4;
$this->height = 1;
}
}
Cela ne fonctionne pas, mais je veux être en mesure d'appeler un nouvel animal et laissez-passer dans l'animal spécifique et doit être retourné. Comment puis-je concevoir cela? (J'utilise PHP).
Oui! C'est exactement ça. J'ai trouvé les "Design Patterns en PHP" les plus utiles. L'autre article de PHP était un peu déroutant pour moi car il parlait de l'abstraction en même temps. –