Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/07/2011, 08:32
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Diferencia entre Factory Method, Simple Factory y Abstract Factory

Simple Factory es una implementación concreta de un Factory, es la implementación sencilla cuando quieres crear diferentes objetos que sabes tienen una relación en concreto con esa fabrica, por ejemplo una fabrica de validadores, que crea implementaciones concretas de algún validador.

Factory Method, se usa para separar diferentes Fabricas de Objetos que estan dentro de un mismo componente común, por ejemplo, un objeto que crea formularios, puede tener un fabrica que cree formularios desde un XML, o desde un array, o desde una BDD, y tienes todos los métodos dentro de la misma fabrica, por ejemplo:
Código PHP:
Ver original
  1. FormFactory::fromXML();
  2. FormFactory::fromArray();
  3. FormFactory::fromBDD();

Abstract Factory es un patrón mucho más complejo pero igual de útil, la idea es que las mismas fábricas de objetos sean interfaces, así como los productos que crean son interfaces, y es la misma aplicación la que decide a travez de inyección de dependencias que implementación de fabrica y producto crear, en la Wikipedia hay un muy buen ejemplo de botones.

Saludos.