¿Cómo resolver una dependencia circular mientras sigo usando Dagger2?

Tengo dos clasesFoo<T> yBar, que dependen unos de otros, así como varias otras clases. Estoy usando Dagger-2 para la inyección de dependencia, pero si ingenuamente agrego la dependencia circular, Dagger golpea un desbordamiento de pila en el tiempo de ejecución. ¿Cuál es una buena manera de refactorizar las clases para solucionar esto, mientras se sigue usando Dagger para inyectar todas las demás dependencias, y con una duplicación y cambios mínimos en las llamadas existentes?

Respuestas a la pregunta(3)

Su respuesta a la pregunta