Sobes.tech
Junior — Middle

¿Cómo se mantiene la dependencia de Hof, marcada con la anotación Singleton, en el contexto de la inyección de dependencias de Dagger?

sobes.tech AI

Respuesta de la IA

En Dagger, la anotación @Singleton garantiza que el objeto se cree una sola vez dentro del componente (Component) y se reutilice en todas las solicitudes de dependencia posteriores.

Cómo funciona:

  • Cuando se crea el componente Dagger, almacena instancias singleton en su caché interno.
  • En la primera solicitud de dependencia con la anotación @Singleton, Dagger crea el objeto y lo guarda.
  • En solicitudes posteriores del mismo tipo, Dagger devuelve la instancia guardada en lugar de crear una nueva.

Es importante que el alcance del singleton esté limitado al componente. Si hay varios componentes, cada uno puede tener su propia instancia singleton.

Ejemplo:

@Singleton
@Component
interface AppComponent {
    MyService getMyService();
}

@Singleton
class MyService {
    @Inject
    MyService() {}
}

Aquí, MyService se creará una vez a nivel de AppComponent y se reutilizará.