Odebírat | ||
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' (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' (avan) RP (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' (rákonsaj) (3.2.2016 21:05) | reagovat | |
dlouhy jak tejden a jeste nevtipny | ||
|
||
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' (holotrt) RP (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' (janci) RP (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' (SirIndy) RP (3.2.2016 18:57) | reagovat | |
Neni to thread safe | ||
|
||
Obrázek 'singleton' (bulbasaurus) RP (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' (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' (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' (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' (avan) RP (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' (serioussam) RP (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' (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' (Kiwee) RP (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' (avan) RP (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' (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' (cyan) (3.2.2016 13:56) | reagovat | |
prostě uploader je simpleton | ||
|
||
Obrázek 'singleton' (bulbasaurus) RP (3.2.2016 13:54) | reagovat | |
Srp? [odkaz] | ||
|
||
Obrázek 'singleton' (Pivo) RP (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' (carloscz) RP (3.2.2016 13:50) | reagovat | |
signleton je zásadním porušením SRP... no, thanks | ||
|
||
Obrázek 'singleton' (kofi83) RP (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' (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' (_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' (Batrachus) RP (3.2.2016 13:21) | reagovat | |
Cpt.? Proč to prostě neudělat staticky? | ||
|