Ani ne, v Javě se už dávno nepoužívá. Možná jinde je pořád cool.
Pokud se v Javě dávno nepoužívá, jenom dobře. Pokud tedy jde o tu variantu s private konstruktorem, to bych jako anti-pattern bral.
Přesně tak. Jde o všechny varianty. Vtipné je, že většina lidí, když se ptá na pohovorech, ani neumí všechny a zároveň umí jen ty nepoužitelné. Ale pořád se na to ptají
Alespoň člověk ví, co tam bude za lidi.
Singleton sa nezvykne pouzivat, ak je k dispozicii dependency injection framework. Ale inac neviem si predstavit, ako by sa riesila jedna jedina zdielana instancia pre celu aplikaciu v plain jave ...
Omluv můj sarkasmus: já si nedovedu představit situaci, kdy bych potřeboval sdílenou instanci pro celou aplikaci.
HTTP request, FileSystem, DB connection - u ničeho z toho nepovažuji za žádoucí vynucovat si jen jednu jedinou instanci by design.
Takze vezmime si konfiguraciu aplikacie, ktora sa kazdych x minut obnovuje. A budem mat 50 nekonzistentnych konfiguracnych objektov, lebo pan riesi Http request a filesystem. Alebo spravi sa singleton a budem mat konfiguraciu na jednom mieste, pre vsetkych rovnaku.
Dalsi priklad mam rozhranie rs232, tam nie je httprequest alebo databaza, problem je vsak, ze je len jedno. Bud vymyslim neviem ake zamykanie cez 50 instancii, alebo si proste spravim singleton.
Potrebujem nieco serializovat von do nejakeho mrdkoveho suboru, co nema http request ani databazu, a je potrebne aby sa do neho nezapisovalo z 50 miest. Takze bud spravim sialene zamykanie cez 50 instancii, alebo spravim singleton. Pripadne sa zahram na to, ze som jouda a singleton nepoznam a ten isty objekt odovzdavam vo vsetkych metodach. To je potom "super", zbytocne to tam zavadzia.
Dalsi relevantny pripad. Chcem sa vyhnut "statickej" triede, lebo je to vlastne zkripleny objekt a ja chcem normalny, pouzijem singleton.
Ked robim webku pre jouda sro v php, mozno singletony nie su treba. Ale pri roznych IRL aplikaciach potreba nastava. U vas toho polku zariadi webserver a ani o tom neviete. Ja osobne, kde mozem, pouzijem framework, co sa o instancie stara za mna. Ale su pripady, ked nemozem, lebo kodim zrovna lib-ku, co ma mat zavislost iba na java api. Tam singleton vyuzijem.