Apparemment ton code correspond à ce qui est expliqué ici :
http://fr.openclassrooms.com/informatique/cours/programmation-en-java-api/le-pattern-factory-1
ou sur le tuto php de victor thullier (c'est quasi le même code que le tien)
http://fr.openclassrooms.com/informatique/cours/programmez-en-oriente-objet-en-php/laisser-une-classe-creant-les-objets-le-pattern-factory
Donc je pense que oui, l'implémentation est correcte.
Au départ je pensais à quelque chose de plus générique genre :
http://come-david.developpez.com/tutoriels/dps/?page=Fabrique#LIV
.. dans lequel les méthodes utilisées dans la fabrique ne dépendent pas de l'objet ou des paramètres passés.