• Non ci sono risultati.

Singleton Design Pattern

N/A
N/A
Protected

Academic year: 2021

Condividi "Singleton Design Pattern"

Copied!
2
0
0

Testo completo

(1)

Azzolini Riccardo 2019-10-08

Singleton Design Pattern

1 Singleton

In alcuni casi, può essere utile creare una classe che abbia al massimo una singola istanza.

La soluzione a questo problema è data da un design pattern chiamato singleton. Per implementarlo, è necessario creare una classe con:

• tutti i costruttori dichiarati private;

• un riferimento statico alla singola istanza della classe;

• un metodo statico che restituisce un riferimento all’istanza (creando tale istanza la prima volta che viene invocato, e restituendo la stessa per tutte le invocazioni successive).

Oltre a questi elementi, la classe ne conterrà poi anche altri, che implementano le sue funzionalità.

1.1 Esempio

public class SingletonClass {

private static SingletonClass singleInstance;

private int innerVariable;

private SingletonClass(int value) { innerVariable = value;

}

public static SingletonClass instantiate(int value) { if (singleInstance == null) {

singleInstance = new SingletonClass(value);

}

return singleInstance;

}

public int getValue() { return innerVariable;

1

(2)

}

public void setValue(int value) { innerVariable = value;

} }

public class MainProgram {

public static void main(String[] args) {

SingletonClass instance1 = SingletonClass.instantiate(1);

SingletonClass instance2 = SingletonClass.instantiate(2);

System.out.println("Content of instance1 = "

+ instance1.getValue());

System.out.println("Content of instance2 = "

+ instance2.getValue());

instance1.setValue(3);

System.out.println("Content of instance1 = "

+ instance1.getValue());

System.out.println("Content of instance2 = "

+ instance2.getValue());

if (instance1 == instance2) {

System.out.println("instance1 and instance2 are aliases");

} } }

L’output del programma è:

Content of instance1 = 1 Content of instance2 = 1 Content of instance1 = 3 Content of instance2 = 3

instance1 and instance2 are aliases

2

Riferimenti

Documenti correlati

o a) titolare di incarico a tempo indeterminato che svolga, in via esclusiva, nell’ambito zonale in cui è pubblicato l’incarico, attività ambulatoriale nella specialità o

h) di aver – di non aver (1) riportato condanne penali e non essere destinatario di provvedimenti che riguardano l’applicazione di misure di prevenzione, di

per il tramite dell’UOC GESTIONE AMMINISTRATIVA DELLE ATTIVITA' CONVENZIONATE OGGETTO: Istanza per l’inserimento nella graduatoria aziendale anno 2021 di medici

00 del 04/12/2020 Al Rappresentante legale dell’ASP TRAPANI per il tramite dell'UOC GESTIONE AMMINISTRATIVA ATTIVITA’ CONVENZIONATE UOS Applicazioni contrattuali e gestione

Manifestazione di interesse per l’invito a successiva procedura negoziata, mediante cottimo fiduciario per servizi in economia, ex articolo 125, comma 11, del

La successione alla quale sarebbe chiamata la persona della quale è stata dichiarata la morte presunta.. La successione ed il ritorno del

Calcolo della riduzione massima del superamento dell’obiettivo attraverso i supercre- diti nell’anno di riferimento in corso (9,3 grammi, da cui detrarre la riduzione del supe-

Organizzazione, Entrate e Controlli anche con l’ausilio di mezzi elettronici e potranno essere comunicati ai soggetti istituzionali nei soli casi previsti dalle