Minta Singleton - emlékeztet

Cél Singleton minta (vagy egy), hogy hozzáférést biztosít néhány egyedi tárgy bármely pontjáról alkalmazás. By egyediségét nyilvánvaló, hogy egy ilyen tárgy létezik, egy példányban, a memória és egyéb tárgyakat nem lehet létrehozni.

Anélkül, hogy a különleges körülmények Singleton egy közös globális változó alapján adódó előnyeit és hátrányait (ami a legtöbb). Ezért, mielőtt használja ezt a mintát, győződjön meg arról, hogy valóban illik. Egy tárgy, ami azt kell végrehajtani, hogy Singleton kell igazán csak a rendszer szintjén.

Példa megvalósítása Singleton Pattern C ++

Technikailag végre Singleton objektumot, és segítségével az alkalmazás igen egyszerű (ami lenyűgözi)

Kívánt tárgy Singleton lehet igazítani, hogy végre több szálon környezetben keresztül mutexes.

Nagy a kísértés, hogy egy létesítmény, amely elérhető bármely pontján a programban. De ez sérti sok gondos kódot. Ezért nem rohan hozzá Singleton, ami megnehezítheti a logikája a programot, és az extra függőségeket.

Vegyünk egy példát. Úgy tűnhet, mint egy jó ötlet, hogy hozzon létre egy osztályt kezeléséhez alkalmazás beállításait, mint a Singleton. Ezután az összes komponenst az alkalmazás látható a kívánt opciókat és könnyű használni őket. Egyrészt, az ötlet úgy tűnik, elég jó. Konfigurációs alkalmazás is lehet képviselő egyedi entitás. A Singleton szabad hozzáférés használatának megkönnyítése konfigurációt.

Azonban ebben az esetben van egy komoly probléma. Minden alkatrész kezdenek függ Singleton. Ha meg kell mozgatni csak az egyik osztály egy másik alkalmazásban, akkor kell, hogy húzza magával, és Singleton, amelyeket fel lehet használni, hogy ellenőrizzék paramétereit a több tucat más osztályokba. Jobb, hogy kiad egy kicsit több időt tervezni, de hogy világos átviteli paraméterek osztályainak keresztül konstruktőrök, nem pedig a láthatatlan Singleton.

Ezen túlmenően, a Singleton minta megnehezíti a használatát polimorfizmus és egyéb finomságokat a PFSZ, amelyekre szükség lehet, ha már minimális újratervezés nem sikerül.

Annak ellenére, hogy meglehetősen ártalmatlan alkalmazás Singleton. Például, a végrehajtás egyéb minták: Abstract Factory.

Használata Singleton indokolja, hogy képviselje a különleges fizikai számítógép erőforrásait. Például egy nyomkövető rendszer csatlakoztatása / leválasztása az USB-eszközök megfelelő végrehajtása Singleton.


Az állam minta C ++


Dekoratőr minta és létrehozása képszűrők Qt


A látogató minta a C ++


Abstract Factory minta C ++


Kompozit minta C ++


Példa polimorfizmus C ++ OOP-alapú


Null Object minta


Minta építő és XML