Ho avuto un'altra domanda di intervista. Pensavo fosse sciocco, ma forse c'è qualcosa che mi manca. La domanda ha chiesto quale pattern GoF sia (risposta: singleton) e, se ci sono problemi, come li risolvo.Estratto di codice di Singleton, un'interrogazione-domanda
Non vedo alcun problema. Ho detto che questo non è mai stato liberato e che mi aspetto da questo schema. Questo è tutto ciò che ho detto. Mi sto perdendo qualcosa?
public class Class1
{
private static Class1 oInstance = null;
private Class1() { }
public static Class1 GetInstance()
{
if (oInstance == null)
{
oInstance = new Class1();
}
return oInstance ;
}
}
+1 ... anche se personalmente non userò typeof (Class1) per il blocco, ma piuttosto solo un'istanza di oggetto che non viene utilizzata per nient'altro. –
Sono assolutamente d'accordo con Fredrik Mörk: il blocco di un oggetto di tipo è una pratica veramente pessima (poiché il blocco è questo). Ogni codice può bloccarti (anche attraverso i domini) se blocchi gli oggetti di tipo (e ogni codice che ha accesso a un'istanza può bloccarti se lo stai bloccando). lock (typeof (Class1)) {Class1.GetInstance(); } e sei in guai seri ... –
Garry, vedi lo schema nella mia risposta, il modo in cui pulisci IMHO –