27-06-2010, 07:32 AM
coucou,
pour mes factory, j'ai construit une classe mère de factory qui possède 80% des méthodes de chaque classe factory spécialisé
F1 extends Fmère
F2 extends Fmère, etc...
j'aimerais que chaque factory soit unique (donc passer par un motif singleton pour chaque classe fille)
le problème c'est que si j'applique le singleton en basique, ce sera un singleton basé sur Fmère, je n'aurais donc pas un F1 et un F2
j'ai donc pensé à un multiton, indicé sur la classe
dans Fmère : static instance = array()
mais voilà comment indiquer la classe à Fmère de manière générique je n'ai pas envie d'avoir un getInstance dans chaque classe factory du type :
F1 :: getInstance(){ parent :: getInstance('F1');}
F2 :: getInstance(){ parent :: getInstance('F2');}
F3 :: getInstance(){ parent :: getInstance('F3');}
je préférerais de loin avoir uniquement un getInstance dans Fmère
mais voilà, je ne sais pas récupérer la classe ( je ne peux pas faire de get_classe($this) puisque $this n'existe pas au démarrage du motif singleton/multiton)
alors voilà, si vous pouvez m'éclairer (soit dans ma piste multiton soit dans un autre)
l'idée étant que je ne pose du code que dans la classe mère, pas dans chacune de mes classes à "singlotiser"
pour mes factory, j'ai construit une classe mère de factory qui possède 80% des méthodes de chaque classe factory spécialisé
F1 extends Fmère
F2 extends Fmère, etc...
j'aimerais que chaque factory soit unique (donc passer par un motif singleton pour chaque classe fille)
le problème c'est que si j'applique le singleton en basique, ce sera un singleton basé sur Fmère, je n'aurais donc pas un F1 et un F2
j'ai donc pensé à un multiton, indicé sur la classe
dans Fmère : static instance = array()
mais voilà comment indiquer la classe à Fmère de manière générique je n'ai pas envie d'avoir un getInstance dans chaque classe factory du type :
F1 :: getInstance(){ parent :: getInstance('F1');}
F2 :: getInstance(){ parent :: getInstance('F2');}
F3 :: getInstance(){ parent :: getInstance('F3');}
je préférerais de loin avoir uniquement un getInstance dans Fmère
mais voilà, je ne sais pas récupérer la classe ( je ne peux pas faire de get_classe($this) puisque $this n'existe pas au démarrage du motif singleton/multiton)
alors voilà, si vous pouvez m'éclairer (soit dans ma piste multiton soit dans un autre)
l'idée étant que je ne pose du code que dans la classe mère, pas dans chacune de mes classes à "singlotiser"