Perché singleton è un anti-pattern? [duplicare]

1

Molti articoli in Internet dicono che Singleton è un anti-pattern, perché rende più difficile il debug.

Tuttavia non capisco perché eseguire il debug di un programma con un oggetto singleton è difficile. Per favore, spiega.

Penso che i singleton siano inevitabili, quando abbiamo bisogno (solitamente per motivi di prestazioni) di inizializzazione pigra di un oggetto controller. O ci sono altre alternative?

    
posta porton 14.11.2016 - 16:21
fonte

1 risposta

-1

I singleton non sono sempre inevitabili, puoi usare lo schema monostate in molti casi, tuttavia, ha lo stesso questioni come singleton, in particolare si tratta di governare lo stato globale.

Per il motivo per cui lo stato globale è negativo, dai uno sguardo al seguente post StackOverflow: Perché Global State è così cattivo?

Personalmente, preferisco avere una classe monostatica su un singleton in quanto mi permette di iniettarlo come dipendenza piuttosto che fare riferimento all'attuazione concreta del singleton (tramite MyClass.Current ), almeno con una monostazione puoi astrarre il fatto che esiste una singola istanza di dati e mi consente di testare le classi basandoci su di esse più facilmente.

    
risposta data 14.11.2016 - 16:27
fonte

Leggi altre domande sui tag