Usi singleton per fornire un'istanza condivisa e accessibile a livello globale di una classe Questa definizione non è univoca per la documentazione di Apple. L'articolo di Wikipedia che ho collegato sopra afferma anche che "Un'implementazione del modello singleton deve fornire un accesso globale a quell'istanza ".
Perché singleton è usato in Swift?
Singleton è un design pattern creativo, che garantisce che esista un solo oggetto del suo genere e fornisce un unico punto di accesso ad esso per qualsiasi altro codice. Singleton ha quasi gli stessi pro e contro delle variabili globali. Sebbene siano super pratici, rompono la modularità del tuo codice.
Quando non dovresti usare un singleton?
L'unica situazione in cui dovresti considerare un singleton è quando avere più di un'istanza di dati già globali sarebbe effettivamente un errore di accesso logico o hardware.
Link correlati:
- La fragilità invocata da Global State e Singletons.
- Iniezione di dipendenza per evitare singleton.
- Fabbriche e singleton.
A cosa serve il singleton?
Un singleton dovrebbe essere usato quando si gestisce l'accesso a una risorsa condivisa dall'intera applicazione, e sarebbe distruttivo avere potenzialmente più istanze della stessa classe. Garantire che l'accesso alle risorse condivise sia thread-safe è un ottimo esempio di dove questo tipo di pattern può essere vitale.
Il singleton è cattivo?
I singleton non sono universalmente cattivi, ma in molte situazioni presentano una serie di problemi che possono essere evitati creando relazioni più ben definite tra i tuoi oggetti e usando la dipendenza iniezione.