quel link sinceramente mi pare un pò... boh... mi pare che l'autore contraddica se stesso...
cioè praticamente lui presenta, un pò come l'autore di questo 3D, l'idea di richiamare qualsiasi tipo di classe come una singleton senza dover implementarne la logica nella classe stessa... piccolo problema alla logica: se la classe non ha il costruttore privato/protetto, tu puoi istanziarla dove ti pare e come ti pare, e ti va a quel paese la logica del Singleton...
Immaginiamo di fare un framework e di creare una serie di classi singleton perchè utilizzate in maniera coordinata in molte parti di esso. Se io posso instanziare a mio piacimento le classi, posso incorrere in errori come creare una nuova istanza di quella classe e lavorare con essa (causando errori o situazioni inaspettate nell'app) invece di usare l'istanza che tutta l'applicazione usa.
Se una classe nasce singleton, singleton dev'essere scritta. Qui non si parla di "duplicare codice inutile", che immagino sia l'obiezione delle "10 singleton" fattami prima, qui si tratta di scrivere il codice come dev'essere scritto: se la classe è singleton, và scritta come singleton; se la classe non è singleton ma sarebbe meglio che agisse come tale (che ne so, vuoi evitare di duplicare/caricare due volte uno stesso model o una stessa connection), allora si può usare una Factory astratta a metodi statici che ritorni sempre la stessa istanza senza crearne ogni volta una.