Hola
Italico76 !
Con que entiendas conceptuálmente cual es el propósito del patrón la implementación puede variar de muchas formas.
Cito de la wikipedia, que fue lo primero que encontré
:
Cita: Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.
En cuanto a la implementación de la primera opción veo un detalle y es que tienes el constructor público, alguien que utilice la clase, accidentalmente podría crear "n" instancias sin saberlo.
Un saludo y suerte !