2010-02-05 11 views
7

Estaba leyendo un hilo en SO que estaba discutiendo los méritos de Singleton vs. Static Classes.¿Cómo se relacionan las fábricas y los patrones?

Algunas personas mencionaron que el patrón X parecía ser más una "fábrica" ​​que un patrón de Singleton.

¿Cuáles son las diferencias entre una 'fábrica' y un 'patrón de diseño'?

Respuesta

1

Las fábricas y Singletons son algunos de los muchos patrones de diseño.

Un patrón de fábrica se puede implementar como un patrón singleton que produce objetos. Una fábrica también podría ser una clase instanciada y, por lo tanto, no un singleton. Del mismo modo, un singleton puede ser una fábrica, pero también puede ser otra cosa, como un administrador de configuraciones globales o un registro de eventos.

0

Lo tienes un poco mal. "Factory" también es un patrón y contrasta aquí con "Singleton".

0

'Factory' es un tipo de patrón de diseño. Se puede ver un par de ejemplos de la fábrica abstracta here o el método de fábrica here en función del contexto

0

fábrica es un patrón de diseño Singleton :-) como es. uno podría argumentar que Singleton es una especie de fábrica. Crea un objeto cuando es necesario y usa una política de ajuste (que siempre devuelve el mismo objeto una vez que se ha creado) pero eso es endémico y generalmente sería confuso en la mayoría de los debates sobre la estructura

0

Una fábrica es un tipo de patrón de diseño. Básicamente, una fábrica devuelve una clase que depende de las necesidades de la clase que llama. Todas las clases devueltas por la fábrica deben compartir la misma interfaz para que pueda invocar los mismos métodos públicos sobre ellas (aunque la forma en que cada clase implementa el método puede ser diferente).

Aquí es un buen enlace http://en.wikipedia.org/wiki/Factory_method_pattern

1

una 'fábrica' en lugar de un Singleton 'patrón'

Let Me carne que y coloca las comillas correctamente:

un 'patrón de fábrica' en lugar de un 'patrón de singleton'

Ambos son design patterns.

0

Muchas respuestas, pero ninguna parece realmente diferenciar entre los dos patrones. Déjame intentar y ver si no puedo confundir el problema más.

Un singleton es un patrón que restringe su sistema para crear solo una instancia de una clase determinada.La restricción generalmente se implementa creando una fábrica que creará una instancia de la clase (si no existe ninguna) o devolverá la instancia ya creada en las llamadas posteriores.

Una fábrica se utiliza para crear singletons y en otras situaciones. Se puede usar para reemplazar "nuevo" en muchos casos. Una ventaja es que puede escribir su fábrica para permitir que el tipo de objeto que se devuelva sea "Establecer". De esta forma, su marco de prueba puede "configurar" un objeto simulado en lugar del objeto real, y el resto del sistema utilizará el objeto simulado.

Otro caso puede ser que la fábrica evalúe desde los parámetros que se escriben a devolver, o desde los datos (quizás XML). También se utilizan para implementar Dependency Injection, donde la fábrica mira lo que necesita y construye cadenas de objetos para satisfacer esas necesidades.

Cuestiones relacionadas