question basique sur le modèle objet - PHP - Programmation
Marsh Posté le 28-01-2009 à 18:41:24
je ferai un animalFactory qui se charge de regarder en base le type , puis d'instancier la bonne classe
Marsh Posté le 29-01-2009 à 18:16:28
En effet j'y ait pensé.
Mais de ce que j'ai compris, il ne faudra pas faire :
$animal = new Animal('medor');
mais :
$animal = Animal::unemethode('medor');
Ce qui est gênant, car on a deja du code qui fait des appels en utilisant new, le code étant cracra (tout dans une seule classe avec du if then else). On aurait aimé recodé la classe plus proprement en plusieurs classes avec des liens d'heritage, mais que nos instanciations ne changent pas.
Marsh Posté le 29-01-2009 à 18:55:57
ReplyMarsh Posté le 29-01-2009 à 19:37:47
Code :
|
Marsh Posté le 29-01-2009 à 22:03:52
billgatesanonym a écrit : Pourquoi ne pas faire ?
|
Parce j'aurais aimé ne pas avoir à changer les scripts ou on instancie les objets (ils existent deja), mais juste les classes.
Malheuresement ce n'est pas possible, je vais faire comme le propose flo. Merci!
Marsh Posté le 28-01-2009 à 18:36:59
Bonjour,
admettons que je definisse une classe parent "animal" et des classes enfants, "chien", "chat", etc. ce qui permet de specifier des méthodes selon le type de l'animal
class Animal{
...
}
class Chien extends Animal{
function emetUnSon(){
return 'ouaf';
}
}
class Chat extends Animal{
function emetUnSon(){
return 'miaou';
}
}
Supposons que l'on a une base de données avec les informations d'animaux stockés dans une base de données :
NOM TYPE
medor chien
César chat
Cette base est consulté par les constructeurs pour instancié un objet.
Comment il faut faire le constructeur pour que l'on puisse faire :
$animal = new Animal('medor'); // on ne sait pas apriori de quel type est medor
$animal->emetUnSon(); // ouaf
Message édité par Profil supprimé le 28-01-2009 à 18:39:20