Návrhový vzor – Singleton

Tento příspěvek je již více než dva roky starý.
Informace v něm obsažené, již nemusí být relevantní.

Nedávno jsem v jednom projektu použil několik návrhových vzorů. Ano, na internetu se k nim dá najít hromada informací, ale většinou je jich až příliš. Smyslem tohoto článku, který je jedním ze zamýšlené série o návrhových vzorech, je nabídnout čtenáři ucelený pohled na konkrétní návrhový vzor.

Co si od toho slibuji? Budu psát o něčem co mě baví, seskupím si konečně někde souhrnné informace o návrhových vzorech a možná to pomůže i někomu dalšímu. Nic víc, nic míň.

Smyslem návrhového vzoru Singleton je zajistit v systému existenci pouze jedné instance dané třídy a poskytnout k této instanci globální přístup.

singleton

To, že bude v systému jediná instance dané třídy s globálním přístupem lze zajistit definováním statické proměnné třídy, jež bude obsahovat referenci na již existující instanci třídy – tedy objekt Singleton. A protože objektově orientované paradigma hovoří o zapouzdření, je třeba mít ještě nadefinovánu metodu, která bude tuto proměnnou vracet. Tato metoda je rovněž statická, což nám umožní ji použít i bez instance Singletonu a tedy si tím ověřit, zda již náhodou nějaká instance požadované třídy – Singletonu neexistuje. Pokud ne, je možno vytvořit instanci Singletonu a její referenci přiřadit do již zmíněné proměnné. V případě, že instance existuje je potřeba vyhodit příslušnou výjimku.

Na závěr je potřeba ještě dodat, že Singleton patří do kategorie návrhových vzorů tvořících, které řeší problematiku tvorby objektů, což je patrné již z názvu kategorie, a je také často využíván jako součást jiných návrhových vzorů jako jsou například Flyweight nebo Facade.

Žádné komentáře

Komentujte jako první!

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*