Singleton - verem túlcsordulás mintája oroszul

A rossz példa az IMHO. Valódi portálokon - sok a kapcsolódás a különböző adatbázisokhoz. És általában, hogy a szingli valóban ugyanaz, mint a statikus - az egyetlen rossz, ha kiderül hirtelen elkezd csaló kezd statikai osztály példányosíthat, és tolja a nem-statikai tulajdonságok / módszerek: de ez csak nem beginnera. És ha van egy pár statikus módszerek jelennek meg Singleton kezében ugyanazon beginnera - semmi szörnyű nem. - Goncharov Alexander, augusztus 25-én 16-kor 17: 01-kor

Singleton - az egyik legegyszerűbb, de ugyanakkor rendkívül fontos tervezési mintázat. Amire szükség van, már válaszolt. A fő megvalósítás az Ön által látható, de a zsemleket mindenki csavarhatja. Például C ++ esetén egyetlen sablon Singleton sablon módszert hozhat létre. majd bármely létező osztályból bármelyik singletont készítsen.

a válasz 22

Az a tény, hogy a Singleton lehetővé teszi, hogy csak egy sajátját hozza létre.

Ennek megfelelően minden olyan osztály, amelyben a singleton objektumot használják, ugyanazt az objektumot használja. Ugyanazokkal az adatokkal.

Vegyünk egy példát az @knes elvtárs válaszából az adatbázishoz való kapcsolódásról. Ha az adatbázis kapcsolat kivitelező rögzített Singleton, minden osztály a szingli DB használat révén egy és ugyanazt a kapcsolatot.

Ugyanaz, ha az myClass egy singleton:

A fentiek mindegyike a véleményem szerint a legegyértelműbb. A szinglettek előnyei és hátrányai egy másik történet.

válaszolt 22. március 12 - én 7: 56 - kor

> Egy másik példa: Add hozzá egy tetszőleges változót a singletonnak. Ezután adja hozzá a getert és a beállítót. Ez egyszerű. A trükk az, hogy megadhatjuk ennek a változónak az értékét egy osztályban, és átvehetjük a másikba anélkül, hogy egy singleton objektumot átadnánk az osztályok között. Nekem van az egyedülálló. - Exec 22: 12-12: 08: 01-kor

másolja ezt az egyszerű példa, futtatni, és meg fogod érteni, hogy egy statikus osztály, együtt a statikus változók nem duplikált az üzemeltető új. Igen, legalább tíz ismétlődő - mindegyik - statikus változó marad.

Szeretne statikus osztályt használni az adatbázis működtetéséhez - kapjon egy privát statikus változót a DB_handler belsejében. Több kapcsolatot (több adatbázist) kell működtetni - szükség esetén szerezzen be egy másikat. Még valami statikus tömböt is felépíthet. Miért ne? Szükség lesz túlságosan kikerülni - újraírni az osztályt. Ie a statikus osztályok másolatai egyáltalán nem különböznek (amikor az új operátor készíti őket), amíg legalább egy nem statikus változó megjelenik benne. Igaz, és ezután csak ez a Nonstatic változó lesz más. Ugyanakkor azonban már csak a gyártott osztályból lehet kezelni ezt a változót.

Erről szól, és a kérdés: "MIÉRT?". A válasz egyszerű - igen, külföldi :)

Valószínűleg vannak olyan feladatok, amelyek meg kell kezdeni egy példányának Singleton ,. „De ha nem volt panasz (na jó, nem veszi valami), akkor semmi sem fog van, és minden rendben lesz csendes és nyugodt. De olyan, mint egy statikus osztály létezik még amikor nem feltétlenül szükséges. és jaj, milyen szörnyű eszik memóriát. „általában valahogy nem tudok csak jön egy természetesen egy ilyen probléma használni ahelyett, hogy egy osztály statikus osztályok.

Így például azt még nem látni a különbséget komplex és egyszerű duzzad Singleton Singleton :: doAction (). Általában statikus osztályok (statikus változók) chrezvyychano kényelmes az a tény, hogy az általuk nyújtott egyfajta „globális” változók bármilyen körét. Az adatbázis kezelője pedig élénk példa.

a válasz 22. március 12-én 14: 52-kor érkezett

Kapcsolódó cikkek