Design Pattern Singleton

759 visite

Design patterns


Design Pattern Singleton

Il Design pattern è in poche parole una soluzione generale a un problema ricorrente.

In altre parole i Design pattern ci indica la migliore soluzione a problematiche che si incontrano quando si sviluppa un software.

Esistono molti design pattern e sono classificati in diverse categorie:

  • Pattern creazionali
  • Pattern strutturali
  • Pattern comportamentali
  • Pattern architetturali
  • Pattern metodologici
  • Pattern concorrenziali

Il Design pattern che vedremo oggi è il Design pattern Singleton che appartiene alla catagoria dei Pattern Creazionali.

Il Singleton ha uno scopo ben preciso mettere a disposizione un unico e solo punto di accesso ad una istanza.

Il diagramma UML è molto semplice:

Singleton

Il codice (in PHP) è il seguente:

La variabile $_instance contiene l’instanza della classe Singleton.

Per instanziare in modo Singleton dovremo quindi scrivere il seguente codice:

Il Singleton è spesso usato per creare instanze di classi “costose” di cui si vuole avere un accesso globale e unico come per esempio una classe che gestisce la connessione al database.

Tuttavia il Singleton è considerato un design pattern “vecchio” e limitato soprattutto in linguaggi come il Java. Se da una parte dà un facile accesso all’instanza della classe, dall’altra incorpora in “getInstance()” la conoscenza delle infrastrutture nelle vostre classi. In altre parole non è possibile aggiungere pezzi unici di funzionalità.

Si parla sempre più spesso di refattorizzare il singleton con un pattern come Dependency Injection (DI), in cui l’idea sarebbe quella di usare un componente esterno chiamato assembler che si occupi della creazione degli oggetti e delle loro relative dipendenze e di “assemblarle” mediante l’utilizzo dell’injection.. ma ne parleremo in dettaglio più avanti…

Iscriviti alla newsletter e rimani sempre aggiornato

Lascia un commento

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