Singleton in Swift

Il Singleton è un software design pattern che prevede l’esistenza di non più di una istanza di una certa classe in memoria.

E’ molto frequente nello sviluppo iOS e gli stessi  framework ufficiali spesso lo adottano.

In Swift (dopo la versione 1.0) definire un singleton è estremamente semplice, soprattutto rispetto a Objective-C.

Creare un Singleton

Vediamo quindi un esempio di singleton.

Usare il Singleton

Possiamo testare il singleton usando Playground. Ma prima dobbiamo aggiungere almeno una property da poter manipolare. Aggiorniamo quindi la definizione di Storage.

A questo punto possiamo scrivere quanto segue

Il vantaggio di questa tecnica è che in qualunque punto dell’applicazione potete recuperare sempre la stessa istanza di Storage semplicemente scrivendo Storage.shared.

private init

Con la riga #3 abbiamo dichiarato l’unico initializer come private. Questo significa che dall’esterno non è possibile creare un’istanza di Storage. L’unico modo per recuperare l’unica istanza disponibile è tramite la property shared.

final

Nel definire il Singleton abbiamo utilizzato la parola final. Questo per indicare al compilatore che vogliamo precludere ad altri la possibilità di estendere la nostra classe. Infatti se qualcuno estendesse Storage potrebbe fornirlo di un nuovo initializer e questo permetterebbe la creazione di multiple istanze della nuova classe (cosa che vogliamo evitare).

 

Luca Angeletti

Trainer • Developer • Writer

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *