Nalezeno 26 komentářů.


Přezdívka:
:-) :o)
:-( >-O
;-) :-D
:-P B-)
8-) :-*
:-/ |-)
=) :-O
Zpráva:
 
Padesátčtyři:
   


Odebírat

Obrázek 'singleton' Obrázek 'singleton' (jdsulin2) (5.2.2016 16:50) reagovat
hovnotijepotom: tak v prikladu pro php to docela chapu, jake jsou jeho problemy, ale ver, ze pod kapotou je singletonu az az. Predpokladam, ze i vnitrni objekt PhpEngine, je urcite Singleton. I kdyby to byla globalni C struktura, tak se to da nazvat singleton. Jasne do skriptovacich jazyku se to moc nehodi, ale zkus si udelat grafickou aplikaci, kde potrebujes odkaz na hlavni okno. Kdybys to predaval vsude jako parametr, tak zcvoknes.

Obrázek 'singleton' Obrázek 'singleton' (hovnotijepotom) (3.2.2016 22:52) reagovat
avan: ještě to chce nějaké zkušenosti na pořádný flame. Tvůj argument je invalidní, ale chápu tvojí potřebu zpochybňovat všechny dobré důvody pro nepoužívání singletonu. Holt, je to pattern, který se učí jako první, pro svoji zdánlivou jednoduchost. Ve skutečnosti je to jeden z nejproblémovějších, s využitím daleko užším, než bychom třeba chtěli. PS: nesouhlasím ani s tím, že DI kontejner je všude implementovaný jako singleton. A i kdyby byl, stále to neznamená, že je jeho použití vhodné.

Obrázek 'singleton' Obrázek 'singleton' (avanRP (3.2.2016 22:13) reagovat
jo uz to chapem, ked singleton nenazves singletonom ale register, namiesto getinstance pristupujes k instanciam cez asociovene pole alebo podobny bazmek, zrazu sa z antipaternu stane popici navrhovy vzor; bonus: DI je vraj popici, singleton je zlo, ale to ze DI kontajner je implementovany vsade ako singleton, to uz nevadi, pretoze je to zakryte frameworkom, wow

Obrázek 'singleton' Obrázek 'singleton' (rákonsaj) (3.2.2016 21:05) reagovat
dlouhy jak tejden a jeste nevtipny

Obrázek 'singleton' Obrázek 'singleton' (hovnotijepotom) (3.2.2016 20:28) reagovat
holotrt: http://m.memegen.com/jvkdzd.jpg [Please, tell me more about it]

Obrázek 'singleton' Obrázek 'singleton' (holotrtRP (3.2.2016 20:18) reagovat
Wow, tu su asi sami borci, co napisali max Hello World a robia zo seba expertov. Pre neznalych: Singleton je samozrejme v poriadku a bezne sa pouziva vo vacsine aplikacii :-)

Obrázek 'singleton' Obrázek 'singleton' (janciRP (3.2.2016 19:07) reagovat
Singleton je zlo. Nie preto ze neni thread safe (da sa napisat thread safe singleton) ale preto ze sa neda testovat a je v nom globalny stav. Zaujimave je, ze je to prvy pattern ktory sa uci, ked sa vysvetluju patterny. Globalny register (ak k nemu pristupujeme cez globalnu/staticku premennu) je tiez zlo. Lepsie je dependency injection

Obrázek 'singleton' Obrázek 'singleton' (SirIndyRP (3.2.2016 18:57) reagovat
Neni to thread safe :)

Obrázek 'singleton' Obrázek 'singleton' (bulbasaurusRP (3.2.2016 18:38) reagovat
@xin2, to plati len pre konkretny jazyk? V Pythone si trebars mozes patchnut staticke metody tak, aby vratili testovaci objekt

Obrázek 'singleton' Obrázek 'singleton' (xin2) (3.2.2016 17:52) reagovat
@avan: a pokud bys chtěl mou námitku obejít nějakým setInstance(...), tak to už není singleton pattern, ale globální registr.

Obrázek 'singleton' Obrázek 'singleton' (xin2) (3.2.2016 17:51) reagovat
@avan: i když si to nezasloužíš, tak ti poradím, že singleton je z principu netestovatelný - statickou getInstance metodu jen těžko změníš, abys nahradil danou instanci nějakou testovací. zatímco do globálního registru (něco na způsob ApplicationContext) můžeš zaregistrovat jak opravdovou, tak testovací instanci v závislosti na tom, jestli běžíš normálně, nebo spouštíš automatický test.

Obrázek 'singleton' Obrázek 'singleton' (hovnotijepotom) (3.2.2016 16:17) reagovat
avan: také ti odpovím otázkami: 1.) proč by nemohl a 2.) proč by měl? Ano, singleton je používán na nesprávných místech těmi, kdo pořádně nechápou, kvůli čemu vzniknul.

Obrázek 'singleton' Obrázek 'singleton' (avanRP (3.2.2016 15:40) reagovat
Takze podla davidka je singleton picovina a ja si mam instancie ukladat "do nějakého globálního registru" ako to sam nazval. Kolka odbornost, proste WOW! Doplnujuca otazka: moze byt "nějaky globální registr" singleton? xD

Obrázek 'singleton' Obrázek 'singleton' (serioussamRP (3.2.2016 15:17) reagovat
pivo: v tej triede singletoffu je predpoklad, ze konstruktor je privatny a nik iny ako metoda getInstance objekt neinstancuje. Takze uz je null.

Obrázek 'singleton' Obrázek 'singleton' (hovnotijepotom) (3.2.2016 15:15) reagovat
kdo řiká, že v kontextu musí být instanciovány singletony...? bullshit. Bez tak je singleton antipaternt a kdo ho používá to dělá buď z lenosti, nebo protože ještě nedospěl. Ano, existuje pár příkladů, kde má použití, ale těch je velmi velmi málo. Krom toho tu ještě nepadlo, jak "dobře" se singleton testuje ... Zapomeňte na něj. Je s ním více problémů, než užitku. Doporučuji https://phpfashion.com/je-singleton-zlo.

Obrázek 'singleton' Obrázek 'singleton' (KiweeRP (3.2.2016 15:03) reagovat
Presne tak avan. Pod kazdou druhou statickou metodou kdejakeho frameworku (napr. .NET) je schovan singleton. A souhlas i s tou druhou casti - dokud clovek pouziva mozek, vetsinou neni problem. Kdyz prestane, tak uz ho pravidla a vzory nezachrani...

Obrázek 'singleton' Obrázek 'singleton' (avanRP (3.2.2016 14:34) reagovat
Neviem co je SRP, (wiki pise ze to je jednoruční zemědělský nástroj, sloužící k odsekávání stvolů bylin) ale singleton je zaklad pre takmer vsetko. Vacsina ludi bude sice do singletonu picovat ake je fuj fuj zlo, ale ze pri pouzivani nejakych ApplicationContext a podobnych kokotin vlastne pouzivaju singleton zakryty frameworkom, to si uz moc neuvedomuju. Ale pravda bude vzdy podobna negrom, neger je dobry sluha, beda vsak ked sa premnozi => zacne robit bordel.

Obrázek 'singleton' Obrázek 'singleton' (jdsulin2) (3.2.2016 13:57) reagovat
caroscz: tak jako nebudeme si vsude predavat odkaz na objekt, ktery chceme mit v aplikaci vsude, napriklad celou aplikaci.

Obrázek 'singleton' Obrázek 'singleton' (cyan) (3.2.2016 13:56) reagovat
prostě uploader je simpleton

Obrázek 'singleton' Obrázek 'singleton' (bulbasaurusRP (3.2.2016 13:54) reagovat
Srp? [odkaz]

Obrázek 'singleton' Obrázek 'singleton' (PivoRP (3.2.2016 13:53) reagovat
V tom singletoffu by se slušelo napsat instance = null; Ať to garbage collector může uklidit.

Obrázek 'singleton' Obrázek 'singleton' (carlosczRP (3.2.2016 13:50) reagovat
signleton je zásadním porušením SRP... no, thanks |-)

Obrázek 'singleton' Obrázek 'singleton' (kofi83RP (3.2.2016 13:47) reagovat
aj bez toho aby ma tu vsetci ukamenovali.. da mi to niekto v ludskej reci? nekodujem

Obrázek 'singleton' Obrázek 'singleton' (PP) (3.2.2016 13:47) reagovat
Tenhle pattern se používá běžně, jediný problém je v multithreaded prostředí. V tom případě je třeba kód synchronizovat.

Obrázek 'singleton' Obrázek 'singleton' (_mop_RP (3.2.2016 13:30) reagovat
Jak staticky? Proč tam neni: public static instnace = new Kebab()? Protože tohle je Singleton s lazy initialization, objekt se vytváří až ve chvíli, kdy je poprvé potřeba. Obecně je tahle pattern celkem škodlivá, nedoporučuju používat, pokud to neni extrémně nutné.

Obrázek 'singleton' Obrázek 'singleton' (BatrachusRP (3.2.2016 13:21) reagovat
Cpt.? Proč to prostě neudělat staticky?