Bonjour tout le monde,
J'utilise actuellement un équivalent de factory qui instancie différents types d'objets selon des conditions précises, et les retourne en les (up?)castant vers une classe dont tous ces objets héritent.
Exemple:
1 2 3 4
|
Class BaseObject {}
Class SubObject1 : BaseObject {}
Class SubObject2 : BaseObject {} |
Ce que fait la factory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public static BaseObject SpawnObject(String str)
{
if (str == "toto")
{
SubObject1 tutu = new SubObject1();
return (BaseObject)tutu;
}
if (str == "titi")
{
SubObject1 tutu = new SubObject2();
return (BaseObject)tutu;
}
} |
Ce que j'aimerais faire dans l'idéal est que la fonction appelant la factory (et recevant donc un BaseObject) puisse appeler une autre fonction "générique" en passant cet objet, et que la fonction appelée puisse déduire facilement ce qui est à faire (d'après les tests que j'ai fait, la surcharge ne semble pas possible car le type passé est le type retenu pour la surcharge).
Y'aurait-il un moyen simple de faire ce que je souhaite ? Genre comme en PHP ou on peut faire ça sans souci:
<?php $toto = 'uneClasse'; $tutu = new $toto(); ?>
J'ai bien pensé à ajouter un membre String contenant le type de la classe récupéré par la reflection, mais je trouve ça malhabile.
Merci d'avance
Partager