:-) zmateni jazyku jako v Babylone. Ano pokud se bavime o scope singleton, tak je vse v nejlepsim poradku.
2008/10/10 Jiří Mareš <[EMAIL PROTECTED]>: > Ahoj nerozumime si, > > ty hovoris o singletonu jako navrhovem vzoru (kdy IoC kontejner neni potreba) > a ja hovorim o singletonu jako o moznosti, > ze IoC vrati vzdy tu samou instanci (jednu jedinou). Mam pocit, ze i o to se > zajimal puvodni tazatel. > > Tam ja zadny problem nevidim, myslim, ze ani ty ne. Problem je jenom zase v > ty podelany terminologii, ktera neni > jednoznacna. > > Jira > > Roman Pichlík napsal(a): >> problem je v tom, ze jakmile zacnes pouzivat static pristup, tak >> zivotni cyklus tveho objektu a toho jak s nim naklada IoC kontejner je >> diametralne odlisny. Statickou metodu pro vraceni instance toho >> singletonu muze volat kdokoliv kdykoliv bez ohledu na fakt, jestli uz >> IoC kontejner udelal na tom objektu vsechnu svoji praci napr. nastavil >> dependence. To potom vede k tomu, ze system padne nekde uplne jinde na >> NPE v zavislosti na tom, jestli ve chvili volani byla instance >> singletonu vytvorena. >> >> Dalsi nevyhoda singletonu je v tom, ze ackoliv je to managovana beana, >> lidi ji pouzivaji jako singleton. Misto toho, aby byl ten objekt nekam >> injectnuty se na tom miste pozuije klasicke volani staticke metody. >> Muzu mit tedy dve beany, ktere na sobe neprimo zaviseji pres singleton >> a opet muze dojit k tomu, ze se nevytvori ve spravnem poradi. >> >> To co v tom dokumentu chybi, a bude doplneno, je fakt, ze ve chvili >> kdy clovek zacne pouzivat singleton jako takovy, tak zacne zavadet do >> sveho systemu opet tesne vazby mezi objekty. Zavislost na singletonu >> proste nezmenim v konfiguraci, ta je zapecena uvnitr kodu. Napriklad >> chci misto singletonu pro testy injectnout mock object, jak to mam >> udelat? >> >> >> 2008/10/10 Jiří Mareš <[EMAIL PROTECTED]>: >>> Ahoj Dagi, >>> >>> priznam se, ze dokument mi na tema proc nepouzivat singletony neodpovedel. >>> Kde je tedy problem, ja jen nevidim ... >>> >>> Diky >>> >>> jira >>> >>> PS. Pod pojmem singleton nemyslim staticke metody a statickou instanci ve >>> tride, ale nastaveni v xml atribut >>> singleton="true" (podobne jako tazatel). >>> >>> Roman Pichlík napsal(a): >>>> Pokud neni uvedeno jinak, tak IoC kontejner vytvari vsechny managovane >>>> objekty (beany) v singleton modu. To znamena, ze na kontejner pripada >>>> pouze a jenom jedna instance daneho objektu. Jinak navrhovy vzor >>>> singleton je v prostredi, kde se pouziva iversion of control, spise >>>> antivzorem a vede to k problemum popsanym v tomto dokumentu >>>> http://docs.google.com/Doc?id=dn53qgm_7g69mtccp. Myslite >>>> >>>> Takze singletony v zadnem pripade nedelat! >>>> >>>> Hibernate session a nebo HTTP session? >>>> >>>>> Zdravím konferenci >>>>> >>>>> Ve webové aplikaci používám Struts + Spring + Hibernate. >>>>> Pro načítání dat požívám klasickou DAO vrstvu. >>>>> DAO třídy si přes applicationContext Springu vstříkuji ( injection ) do >>>>> tříd s aplikační logikou (Action class ve Struts). >>>>> DAO třída obsahuje klasické CRUD operace. >>>>> >>>>> Dotaz: >>>>> Mohu nastavit DAO třídy jako singletony? Mám pocit, že by mi to mohlo >>>>> ušetřit nějaké zdroje, ale nejsem si jistý zda je to bezpečné z hlediska >>>>> concurrency přístupů. >>>>> >>>>> Ve webové aplikaci by měly být přístupy k objektům ThreadSafe, ale četl >>>>> jsem o nějakých vyjímkách (např. session). >>> -- >>> Jiří Mareš (mailto:[EMAIL PROTECTED]) >>> ČSAD SVT Praha, s.r.o. (http://www.svt.cz) >>> Czech Republic >>> >>> >> >> >> > > -- > Jiří Mareš (mailto:[EMAIL PROTECTED]) > ČSAD SVT Praha, s.r.o. (http://www.svt.cz) > Czech Republic > > -- S pozdravem Roman "Dagi" Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
