Retourner aux forums || Retourner au forum Programmation.php
Programmation.php : "sur spécification" d'un objet
Posté par Hardy Damien (page perso, ) le 28 août 2006
Bonjour,
Une petit question POO.
Est ce qu'il est possible en POO et plus particulièrement en PHP
de retourner une sous classe d'une classe lors de l'instenciation de celle-ci en fonction de critères prédéfinis (un contexte par exemple)
$context = je_vais_dans_un_chenil();
$animal = new Animal();
et là paf ! $animal est une instance de Chien (qui est une sous classe d'Animal )
P.e. en passant par une "factory" comme en XUL ?
Dam
Une petit question POO.
Est ce qu'il est possible en POO et plus particulièrement en PHP
de retourner une sous classe d'une classe lors de l'instenciation de celle-ci en fonction de critères prédéfinis (un contexte par exemple)
$context = je_vais_dans_un_chenil();
$animal = new Animal();
et là paf ! $animal est une instance de Chien (qui est une sous classe d'Animal )
P.e. en passant par une "factory" comme en XUL ?
Dam
> Lire le message (2 commentaires, moyenne: 1).
gruik
Posté par
duaner () le 28/08/2006 à 17:10. (lien). Évalué à 1.
-> $genre = 'chien'; $animal = Animal::create();
Seulement ca serait peut etre moins gruik de passer $context a create($context, $options = array()) et d'appeler Animal::create('chien');
abstract class Animal {
private function __construct(){}
public static function create ($options=array()) {
global $context;
if(!class_exists($context)) {
throw new Exception("Cette classe n'existe pas");
}
return new $context($options);
}
}
-> $genre = 'chien'; $animal = Animal::create();
Seulement ca serait peut etre moins gruik de passer $context a create($context, $options = array()) et d'appeler Animal::create('chien');
-
[^]Re: gruik
Posté par Hardy Damien (page perso, ) le 29/08/2006 à 15:50. (lien). Évalué à 1.Hmm ok je vois ce que tu veux dire. obligé de passer par une methode static (donc on rejoint la notion de "factory" que j'ai évoqué)
Pour l'aspect gruik, j'entendais par "contexte" n'importe quoi : le temps qu'il fait, l'heure, l'age du capitaine. ça me parrait difficile de tout prévoir depuis le script utilisateur pour passer le bon parametre au constructeur. (j'ai simplifié dans l'exemple bien sur).
merci pour ton éclairage en tout cas.
Dam
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.php



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.