Autor Zpráva
Jiří Ráb
Profil
Zdravím, chci se zeptat k čemu je dobrý Singleton a jak funguje a jak správně ho používat ?
Kajman
Profil
Singelton je k tomu, abyste se po několika měsících či rocích mlátil do hlavy, že jste nebyl prozíravější a slepě jste věřil svému názoru, že vám od daného objektu stačí vždy jen jedna instance.
H13
Profil
Jiří Ráb:
Já se i po deseti letech při používání Singletonů do hlavy nemlátím. Používám sigletony (které jsem ani nevytvořil ani nenavrhnul - možná proto se do té hlavy nemlátím, protože byly od začátku navrhnuty správně) velmi rád. Ve složitých systémech, které jsou poskládány z různých částí od různých vývojářů, je použití singletonu skvělá věc, protože se v různých částech systému používá prostě jen jedna instance dané třídy. A jsou třídy, které se prostě například i 10 let nemění (např. připojení k databázi). Chytré knihy "píšou", že by to mělo šetřit i nároky na paměť. Mít prostě jeden globální přístupový kód a používat pouze jednu instanci mě osobně příjde čisté. Singleton jako návrhový vzor je prostě velmi jednoduchý a proto ho mám rád. Ovšem, jak píše Kajman, je potřeba dát si pozor při tvorbě třídy, zda se pro ni opravdu hodí Singleton.

Při implementaci Singletonu existují určitá pravidla, která je dobré dodržet (statický atribut, statická metoda, nová instance, zákaz klonování). Doporučil bych tuto knihu (i když myslím, že i ostatní online návody budou vysvětlovat Singleton podobně):
www.databazeknih.cz/knihy/navrhove-vzory-v-php-248534
M4n
Profil *
Ve správně navrženém programu se má o vytváření a přidělování instancí služeb starat výhradně DI kontejner. V takovém případě nemáš Singleton vůbec potřebovat a tento pattern je vlastně úplně nadbytečný.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: