Pregunta

¿Es posible la inyección del modelo sobre la mosca? En otras palabras, si pido un modelo del tipo iPhotomodel, debería obtener una de sus implementaciones basadas en el estado actual de la vista. Si estoy buscando una página de usuario, debería obtener una implementación específica del usuario de ese modelo. Si estoy buscando una página de ubicación, debería obtener una implementación específica de ubicación.

Actualmente, la única forma en que veo es presentar un comando que especifica la asignación del modelo, con una concreta basada en el estado de vista actual ...

algo como...

inyector.mapValue (iPhotoviewModel, inyector.getInstance (userPhotoviewModel)) o inyector.mapValue (iPhotoviewModel, inyector.getInstance (ubicación de ubicación (ubicación))))

¿Es esta la mejor manera posible? Realmente no quiero introducir mucha lógica de acoplamiento fuera del contexto, pero ...

¿Fue útil?

Solución

Así es como lo hago, y creo que esta es la forma recomendada. De hecho, creo que muchos usuarios avanzados de robotlegs dividirán la mayoría de las asignaciones en comandos por conveniencia, reutilizan y facilitarán el programa, incluso si el comando solo se ejecuta una vez al inicio. Lo he usado para cosas como intercambiar servicios simulados por servicios reales: el comando que mapea las dependencias es diferente, pero todo lo demás es lo mismo.

No veo esto como "tanta" lógica de acoplamiento. El comando simplemente está configurando el programa basado en el estado de aplicación actual. Realmente no hay tanta diferencia entre usar un comando para cambiar el estado del inyector frente a su propio estado de modelo personalizado.

Incluso puede encontrar que puede reutilizar sus comandos de mapeo de inyección en las aplicaciones, mientras que es posible que no pueda reutilizar todo el contexto.

Hth;

Amy

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top