Singleton: Porovnání verzí

Smazaný obsah Přidaný obsah
Mstarman (diskuse | příspěvky)
Překopání články, grafické úpravy
m - subjektivní formulace
Řádek 200:
==Nevýhody==
 
Při využívání [[Vlákno (program)|vícevláknových]] aplikací se může stát, že první vlákno požádá o vytvoření jedináčka. [[Procesor]] přepne na druhé vlákno, kde ještě není jedináček vytvořen a je spuštěn proces tvorby jedináčka. Poté je přepnuto na první vlákno, kde byl jedináček započat a je dokončen. Bohužel už není jedináček, ale je to dvojče. Tomu by se dalo vyhnout [[Synchronizace|synchronizováním]] tovární [[metoda|metody]], což je ale poměrně drahá operace (při používání Javy 5 není nutné synchronizovat celou tovární metodu a jedináček se definuje jako volatile).
 
Další problém nastává u [[Serializace|serializovatelnosti]] jedináčka. Kdybychom chtěli načítat jedináčka uloženého ze [[stream]]u, například souboru, musíme zkontrolovat, jestli již nějaký takový jedináček neexistuje (Java poskytuje metodu, kterou je tato funkcionalita podpořena, jedná se o readSolve(), tato metoda vrací odkaz na aktuálního (původního) jedináčka, ale umožňuje ho například doplnit o novinky jedináčka ze streamu).