Pregunta

código fuente CodeCampServer contiene un genérico StaticFactory .

Estoy conjeturando que esto es una pieza clave del mecanismo de cómo el marco juega bien con la inyección de dependencias.

Las subclases de los cuales utilizan es DefaultUnconfiguredState para proporcionar acceso a la estática, así, un estado predeterminado sin configurar por sí mismos lo que el mecanismo de resolución de dependencias puede reemplazar con la materia de trabajo.

No he podido encontrar ninguna documentación para esto ...

¿Hay una buena explicación en el libro ? (Estoy a la espera de la entrega de Amazon ...)

... o cualquier otra persona puede proporcionar un buen comentario sobre lo que es esto y si yo sería aconsejable adoptar este patrón (si se trata de una ...)?

Actualizar

Desde Jeffrey Palermo respondió a esta pregunta veo que en el manuscrito (trabajo en progreso) para MVC2 en acción este patrón / estilo se discute y se ilustra usando una fábrica que se utiliza para localizar un repositorio con el fin de mantener el capa de dominio ignorantes de las preocupaciones de persistencia. (Ver capítulo 23 ).

Por defecto, el uso de esta fábrica produce una excepción:

  

"el conocimiento de cómo crear el   repositorio no reside con el   fábrica. Esta fábrica meramente   representa la capacidad para volver   el repositorio "

El ejemplo podría haber utilizado uno de los varios mecanismos para inicializar una aplicación concreta de la interfaz de repositorio. En el ejemplo en el libro que eligen no utilizar un contenedor COI por motivos de simplicidad y proporcionar explícitamente en alguna lógica de puesta en marcha.

  

"Lo importante es que ni   el proyecto básico ni el proyecto de IU   debe hacer referencia a la Infraestructura   proyecto o bibliotecas que son puramente   infraestructural en la naturaleza. Tenemos   NHibernate conservado por completo a la   lado para que el resto de la   la aplicación no le importa cómo los datos   el acceso está sucediendo "

Un punto final a la nota sobre el código de ejemplo en este nuevo capítulo es que la fábrica ya no es estática (por lo menos no tan lejos como la interfaz hacia el exterior se refiere).

Actualización 2

El Sr. Palermo escribió en su blog un poco más sobre este estilo particular de Abstract Factory (véase la implementaion de OrderShipperFactory).

Podría también basta con considerar 'Manual de Inyección de Dependencia' (tío Bob).

Actualización 3 - Marzo el año 2016

Hay otro ejemplo de que aquí , aunque Jeffrey es explícito acerca de este código de demostración bienestar, y el comentario indica que esto se configura en lo que Mark Seeman llamaría un Composición Root (es decir, al inicio de la aplicación)

Esto lo descubrí en el artículo de Jeffrey " arquitectura de cebolla: parte 4 - Después de cuatro años "

¿Fue útil?

Solución

Buena pregunta. No me gusta tampoco. En realidad debería llamarse "StartupFactoryConfiguration", pero está en la lista refactor.

Hemos jugado con esa idea como una manera de establecer DI para los lugares que no estaban bajo la inyección de constructor a través del recipiente.

Se va a desaparecer. No sé lo que es el anti-patrón (qué nombre?), Pero StaticFactory a morir.


Ahora se ha cambiado el nombre a partir de esta mañana. Ahora es AbstractFactoryBase. Es una implementación del patrón Abstract Factory: http://en.wikipedia.org/wiki/Abstract_factory_pattern

La aplicación de la fábrica es para acabar llamando a un contrainer COI, pero permite el acceso desde un lugar en el código sin una referencia de ensamblado para el conjunto de recipiente COI.

Saludos, Jeffrey Palermo

scroll top