singleton 03.02.2016 
Obrázek singleton
jenom ukradli bohuzel my MakeRoumingFunnyAgain-DrinkAndDrive MakeRoumingFunnyAgain-paniKlausova sach mat zapade falesny psychiatr ale pravy STBak
Komentáře (26) Komentovat Nezobrazovat

singleton.png (jdsulin2) (5.2.2016 16:50)
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.

singleton.png (hovnotijepotom) (3.2.2016 22:52)
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é.

singleton.png (avanRP (3.2.2016 22:13)
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

singleton.png (rákonsaj) (3.2.2016 21:05)
dlouhy jak tejden a jeste nevtipny

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

singleton.png (holotrtRP (3.2.2016 20:18)
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 :-)

singleton.png (janciRP (3.2.2016 19:07)
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

singleton.png (SirIndyRP (3.2.2016 18:57)
Neni to thread safe :)

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

singleton.png (xin2) (3.2.2016 17:52)
@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.

singleton.png (xin2) (3.2.2016 17:51)
@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.

singleton.png (hovnotijepotom) (3.2.2016 16:17)
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.

singleton.png (avanRP (3.2.2016 15:40)
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

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

singleton.png (hovnotijepotom) (3.2.2016 15:15)
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.

další...