Singleton
Consiste en que una clase sea capas de instanciarse a sí misma, asegurando que no existirá mas de una instancia de esta en clase durante el tiempo de vida de la aplicación, al mismo tiempo provee de un solo punto de acceso global a la instancia, haciendo posible que pueda ser usada de cualquier punto de la aplicación.
En la imagen, podemos ver la clase Singleton la cual tiene un constructor privado, esto hace que nadie pueda instanciar a la clase mas que ella misma, también contienen 1 variable privada y una propiedad publica, ambas del mismo tipo de la clase, la variable privada es instanciada cuando se manda a llamar a la propiedad publica, pero si la variable privada ya estaba instanciada entonces se manda a llamar a ella misma.