A.
class Singleton {
private static Singleton instance;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
B.
class Singleton {
private static Singleton instance = new Singleton();
protected Singleton() {
}
public static Singleton
getInstance() {
return instance;
}
}
C.
class Singleton {
Singleton()
{
}
private static class
SingletonHolder {
private static final Singleton
INSTANCE = new Singleton();
}
public static Singleton
getInstance() {
return
SingletonHolder.INSTANCE;
}
}
D.
enum Singleton {
INSTANCE;
}
La risposta è A e D
Il singleton rappresenta un tipo particolare
di classe che garantisce che soltanto un’unica istanza della classe stessa
possa essere creata all’interno di un programma.
Per ottenere questo comportamento è necessario
avvalersi del modificatore di accesso private anche per il costruttore della
classe (cosa che generalmente non viene mai praticata in una classe standard)
ed utilizzare un metodo statico che consenta di accedere all’unica istanza
della classe.
In generale, la scelta del singleton viene
effettuata in tutti quei casi in cui è necessario che venga utilizzata una sola
istanza di una classe.
Ciò consente di:
- Avere un accesso controllato all’unica istanza della classe
- Avere uno spazio di nomi ridotto
- Evitare la dichiarazione di variabili globali
- Assicurarsi di avere un basso numero di oggetti utilizzati in condivisione grazie al fatto che viene impedita la creazione di nuove istanze ogni volta che si voglia utilizzare la stessa classe.
A.
Questo codice realizza
un Singleton pattern.
B.
Il modificatore del
costruttore è protected e quindi non si
realizza il Singleton pattern.
C.
Il modificatore del costruttore
è default e quindi non si realizza il Singleton pattern.
D.
Questo codice realizza un Singleton pattern utilizzando ENUM.
Nessun commento:
Posta un commento