Pues de hecho más la idea (con FactoryMethod) es que te devuelva el mismo objeto pero de diferentes fuentes, o sea en tu ejemplo de usuarios:
Código PHP:
Ver original<?php
class UserFactory {
public static function fromXML($sXML)
{
// Cargas desde el xml
return $User;
}
public static function fromBDD($sId)
{
// Cargas desde la bdd
return $User;
}
public static function fromText($sTextFile)
{
return $User;
}
}
El AbstractFactory, se usa mucho con inyección de dependencias, ya que la idea es que todo este "atado" usando interfaces, pero nada concreto, la idea es que al configurar el objeto (ya en ejecución) la fabrica sea lo más abstracta posible para soportar esos cambios.
Saludos.