Assicurarsi che una determinata possa avere una sola istanza, e allo stesso momento deve avere un punto di accesso globale.
Soluzione:
Rendere privato il costruttore predefinito, per evitare che altri oggetti utilizzino l’operatore new
Creare un metodo di creazione statico che funga da costruttore. Questo metodo richiama il costruttore privato per creare un oggetto e lo salva in un campo statico. Tutte le chiamate successive a questo metodo restituiscono l’oggetto memorizzato nella cache.
Esempio
public class Ferrovie{ private static Ferrovie instance; private ArrayList<Corsa> corse; private Ferrovie(){ corse = new ArrayList<Corsa>(); } public static Ferrovie getInstance() { if (instance == null) { instance = new Ferrovie(); } return instance; }}