====== OMO - singleton ====== Singleton je objekt, u kterého chceme mít maximálně jednu instanci a chceme vytvoření nové zakázat. V každém programovacím jazyku se to dá řešit trošku jinak. V Javě je řešení přibližně následující. - Konstruktor nastavíme na private, aby nešel použít. Pokud jej neuvedeme, kompilátor vytvoří implicitní, který je public. - Vytvoříme si statickou proměnnou, kde tu jednu naši instanci budeme držet. - Vytvoříme metodu getInstance(), která buď vrátí naši již vytvořenou instanci, nebo pokud je volána poprvé, tak instanci vytvoří (může, protože private tomu nebrání). ===== Logger.java ===== public class Logger { private static Logger instance; public static Logger getInstance(){ if (instance == null){ instance = new Logger(); } return instance; } private Logger(){ System.out.println("Vytvarim logger"); } public void warning(String message){ System.out.println("Warning:"+message); } } ===== Main.java ===== public class Main { public static void main(String[] args) { Logger a = Logger.getInstance(); Logger b = Logger.getInstance(); a.warning("aaaaaa"); b.warning("bbbbb"); //Zde si overime, ze je to ta sama instance System.out.println(a); System.out.println(b); } }