Daga 2: ¿cuál es el propósito de una clase de anotación @Singleton?

De la daga 2Documentación Me di cuenta de que puedes tener un@Singleton clase anotada ¿Cuál es el propósito de marcar una clase como@Singleton como he intentado hacer esto en mi código pero NO se produce un objeto singleton. No tengo claro en qué sirve marcar mi clase con esta anotación.

De la documentación, concéntrese en la siguiente declaración:

La anotación @Singleton en una clase inyectable también sirve como documentación. Recuerda a los posibles mantenedores que esta clase puede ser compartida por múltiples hilos. *

@Singleton
class CoffeeMaker {
  ...
}

ACTUALIZACIÓN: Después de revisar la respuesta de froger_mcs, veo que en Dagger 2 puede proporcionar inyecciones ya sea mediante un módulo O mediante una inyección de constructor. Entonces, la siguiente clase, aunque no está en un módulo, puede inyectarse:

@Singleton
public class MyClass {

    @Inject
    public MyClass() {

    }
}

En esta versión, el constructor se inyecta para nosotros y en una actividad de Android, simplemente haría lo siguiente y se proporcionará:

@Inject
MyClass myClass;
//then in onCreate actually inject(this) from your graph of course.

Respuestas a la pregunta(4)

Su respuesta a la pregunta