Abbiamo un codice legacy che ha un sacco di singleton dappertutto (scritto in C #).
Il singleton è un'implementazione abbastanza "classica" del pattern:
public class SomeSingleton
{
private static SomeSingleton instance;
private SomeSingleton()
{
}
public static SomeSingleton Instance
{
get
{
if (instance == null)
{
instance = new SomeSingleton();
}
return instance;
}
}
}
Tieni presente che la sicurezza dei thread non è un problema, quindi non vengono utilizzati blocchi.
Per rendere il codice più testabile e senza apportare troppe modifiche, vorrei modificare questo codice per delegare la creazione dell'istanza singleton in un'altra classe (una factory o modello simile).
Questo può aiutare a creare un'istanza di "test" a scopo di test, o la versione reale, come viene usata ora.
È una pratica comune? Non sono riuscito a trovare alcun riferimento a tale modello utilizzato.