"Singleton" è ampiamente considerato anti-pattern ("cattivo" nella lingua di tutti i giorni).
Che dire di questo modello singleton modificato alternativo?
Un costruttore di oggetti per la nostra classe assicura che in un dato momento del tempo ci sia al massimo un'istanza dell'oggetto (sì, questo usa una variabile booleana globale). Se l'utente tenta di creare un oggetto della nostra classe mentre viene creato un altro oggetto della classe (e non ancora distrutto), il costruttore genera un'eccezione.
In questo modo possiamo garantire che due oggetti (possibilmente in possesso di uno stato esterno globale) non possano interferire tra loro e disturbarsi a vicenda per funzionare come previsto.
Questo facilita il test, poiché l'oggetto può essere creato in un caso di test.
Quindi, dovrebbe essere accettato tale modello singleton modificato? può essere un modello? o ancora anti-pattern?