Tshebetso e ntle ka ho fetisisa ea singleton ea C++ | Mewayz Blog Skip to main content
Hacker News

Tshebetso e ntle ka ho fetisisa ea singleton ea C++

Maikutlo

13 min read Via andreasfertig.com

Mewayz Team

Editorial Team

Hacker News

Ho Lelekisa Motho a le Mong ea Phethahetseng: Phephetso e sa Feleng ea C++

Naheng e kholo ea mekhoa ea meralo ea software, ke tse fokolang tse bakileng ngangisano, boqapi, esita le likhang joalo ka Singleton. Sepheo sa eona se bonolo ka mokhoa o thetsang: etsa bonnete ba hore sehlopha se na le ketsahalo e le 'ngoe feela le ho fana ka sebaka sa lefats'e sa phihlello ho sona. Ho tloha ho laola litlhophiso tsa tlhophiso ho ea ho laola phihlello ea sesebelisoa se arolelanoang joalo ka letamo la khokahano ea database, mohlala oa Singleton o sebetsana le tlhoko e tloaelehileng. Leha ho le joalo, ho C++, ho finyella Singleton e bolokehileng, e sebetsang, le e se nang maraba ke leeto la ho fetoha ha puo ka boeona. Ke tabatabelo ea ts'ebetso le ts'epahalo e bonts'ang filosofi e ka morao ho sethala joalo ka Mewayz, moo likarolo tsa modular tse matla, tse sebetsang hantle li leng bohlokoa bakeng sa ho aha sistimi e tsitsitseng ea ts'ebetso ea khoebo. Phethahatso e "molemo ka ho fetisisa" ha se karabo e le 'ngoe empa ke tekanyo ea litlhoko tse ikhethileng molemong oa morero oa hau.

Tšimoloho e sa Tsebeng le Likotsi Tsa ho Hokela Mehala e Mengata

Ts'ebetso e otlolohileng ka ho fetesisa ea Singleton e sebelisa ts'ebetso e tsitsitseng e hlahisang mohlala ka mohala oa pele. Leha ho le joalo, mokhoa ona oa khale o na le bofokoli bo tebileng lefatšeng le nang le likhoele tse ngata. Haeba likhoele tse ngata ka nako e le 'ngoe li hlahloba hore na mohlala o teng, kaofela ha bona ba ka e fumana e le lefeela ebe ba tsoela pele ho iketsetsa maemo a bona, e leng se lebisang tlolong e hlakileng ea molao-motheo oa paterone. Ha o ntse o kenyelletsa senotlolo sa mutex ho potoloha mohopolo oa pōpo ho rarolla lebelo la data, e hlahisa bothata bo boholo ba ts'ebetso. Pitso e 'ngoe le e' ngoe e eang ho motho ea fumanang mohlala, leha Singleton e se e qalisoa ka botlalo, e baka ho notlela le ho notlolla, e leng ntho e sa hlokahaleng ebile e bitsa chelete e ngata. Sena se tšoana le ho haha ​​mokhoa oa khoebo moo mosebeletsi e mong le e mong a tlamehang ho kopa senotlolo sa kamore nako e telele ka mor'a hore lemati le notleloe ka ho sa feleng-e leng tšenyo ea nako le lisebelisoa. Ka mokhoa o phahameng oa ts'ebetso ea modular joalo ka Mewayz, ho se sebetse ho joalo maemong a mantlha ho ka se amoheloe.

Tharollo ea Sejoale-joale ea C++: `std::call_once` le The Magic Statics

Maemo a C++11 a tlisitse lisebelisoa tse matla tse ntlafalitseng ts'ebetsong ea Singleton haholo. Mokhoa o matla ka ho fetesisa le o khothaletsoang haholo kajeno o sebelisa karolo ea "Magic Static". Ka ho phatlalatsa mohlala oa Singleton e le phetoho e tsitsitseng ka har'a ts'ebetso (ho e-na le "static" ea sehlopha), re sebelisa tiisetso ea puo ea hore mefuta e sa fetoheng e qalisoa ka mokhoa o sireletsehileng oa khoele. Moqapi o sebetsana le liloko tse hlokahalang tlas'a hood, empa feela nakong ea ho qalisoa ha pele. Mehala e latelang e potlakile joalo ka tlhahlobo e bonolo ea pointer. Mokhoa ona, o atisang ho sebelisoa `std::call_once` bakeng sa taolo e hlakileng, o fana ka ts'ebetso e botsoa le ts'ebetso e phahameng.

  • Tshread-Safe Initialization: E netefalitsoe ke maemo a C++, e felisa maemo a morabe nakong ea pōpo.
  • Tlhahiso ea botsoa: Mohlala o etsoa feela ha ho hlokahala, ho boloka lisebelisoa.
  • Boithuto bo Nyenyane ba Nako ea ho Ruta: Kamora ho qala, litjeho tsa ho fihlella mohlala ha li na letho.
  • Bonolo: Khouto e hloekile, e utloisiseha habonolo, 'me ho thata ho e fosa.

Ho leka-lekana ha ts'ireletso, ts'ebetso, le bonolo ke maemo a khauta bakeng sa lits'ebetso tse ngata. E netefatsa hore mojule oa mantlha, joalo ka ts'ebeletso ka har'a Mewayz OS, e ts'oaroa ka ts'epo mme e sebetsa hantle nakong eohle ea ts'ebeliso ea ts'ebeliso.

Ha Tshebetso e le Ntho e ka Sehloohong: The Meyers Singleton

Ts'ebetsong e khethehileng ea "Magic Static" e ntle haholo ebile e sebetsa hantle hoo e reheletsoeng ka 'mampoli oa eona, Scott Meyers. Meyers Singleton hangata e nkuoa e le tharollo ea ts'ebetso e ntle ka ho fetesisa bakeng sa C++ ea sejoale-joale. E khuts'oane ka mokhoa o makatsang:

"Meyers Singleton mohlomong ke eona tsela e sebetsang ka ho fetisisa ea ho kenya ts'ebetsong Singleton ho C++ hobane e matlafatsa ts'ebetso e sireletsehileng ea khoele ea moqapi, e fana ka ts'ebetso e nepahetseng ka mor'a mohala oa pele."

Paterone ena e nepahetse bakeng sa Li-Singletons tse fumanehang khafetsa kamora ho qala. Litšobotsi tsa eona tsa ts'ebetso li lumellana le litlhoko tsa tsamaiso e kang Mewayz, moo litšebeletso tsa mantlha li tlamehang ho fumaneha hang-hang ntle le ho hlahisa latency, ho netefatsa hore ts'ebetso e kholo ea khoebo e lula e sa tsitsisehe ebile e arabela.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Qetello: Ho Khetha Sesebediswa se Nepahetseng Bakeng sa Mosebetsi

Tlhokotso ea "C++" e ntle ka ho fetisisa ea ts'ebetso ea Singleton e fella ka mekhoa ea sejoale-joale e lumelletsoeng ke C++11 le ho feta. Le ha Meyers Singleton e le khetho e ntle ka ho fetesisa, ts'ebetso e "molemo" qetellong e ipapisitse le mathata a hau a ikhethileng. Bakeng sa maemo ao le litšenyehelo tsa cheke li phahame haholo, ho ka nahanoa Singleton e hahiloeng ka hloko e behiloeng sebakeng sa mabitso sa lefatše, leha sena se senya tlhahiso ea botsoa. Ntho ea bohlokoa ke ho utloisisa likamano tsa lichelete. Joalo ka ha Mewayz e fana ka likarolo tsa modular tseo u ka li hlophisang bakeng sa ts'ebetso e nepahetseng ea khoebo, khetho ea hau ea mohlala oa Singleton e lokela ho ba qeto e entsoeng ka boomo e ipapisitseng le litlhoko tsa kopo ea hau bakeng sa polokeho ea likhoele, nako ea ho qala, le makhetlo a phihlello. Ka ho khetha ts'ebetsong ea sejoale-joale, e matlafalitsoeng ke mokopanyi, u theha motheo o tiileng le o sebetsang hantle joalo ka litsamaiso tseo u ikemiselitseng ho li theha.

Lipotso Tse Botsoang Hangata

Ho Lelekisa Motho a le Mong a le Mong: Phephetso e sa Feleng ea C++

Naheng e kholo ea mekhoa ea meralo ea software, ke tse fokolang tse bakileng ngangisano, boqapi, esita le likhang joalo ka Singleton. Sepheo sa eona se bonolo ka mokhoa o thetsang: etsa bonnete ba hore sehlopha se na le ketsahalo e le 'ngoe feela le ho fana ka sebaka sa lefats'e sa phihlello ho sona. Ho tloha ho laola litlhophiso tsa tlhophiso ho ea ho laola phihlello ea sesebelisoa se arolelanoang joalo ka letamo la khokahano ea database, mohlala oa Singleton o sebetsana le tlhoko e tloaelehileng. Leha ho le joalo, ho C++, ho finyella Singleton e bolokehileng, e sebetsang, le e se nang maraba ke leeto la ho fetoha ha puo ka boeona. Ke tabatabelo ea ts'ebetso le ts'epahalo e bonts'ang filosofi e ka morao ho sethala joalo ka Mewayz, moo likarolo tsa modular tse matla, tse sebetsang hantle li leng bohlokoa bakeng sa ho aha sistimi e tsitsitseng ea ts'ebetso ea khoebo. Phethahatso e "molemo ka ho fetisisa" ha se karabo e le 'ngoe empa ke tekanyo ea litlhoko tse ikhethileng molemong oa morero oa hau.

Tšimoloho e sa Tsebeng le Likotsi Tsa ho Hokela Mehala e Mengata

Ts'ebetso e otlolohileng ka ho fetesisa ea Singleton e sebelisa ts'ebetso e tsitsitseng e hlahisang mohlala ka mohala oa pele. Leha ho le joalo, mokhoa ona oa khale o na le bofokoli bo tebileng lefatšeng le nang le likhoele tse ngata. Haeba likhoele tse ngata ka nako e le 'ngoe li hlahloba hore na mohlala o teng, kaofela ha bona ba ka e fumana e le lefeela ebe ba tsoela pele ho iketsetsa maemo a bona, e leng se lebisang tlolong e hlakileng ea molao-motheo oa paterone. Ha o ntse o kenyelletsa senotlolo sa mutex ho potoloha mohopolo oa pōpo ho rarolla lebelo la data, e hlahisa bothata bo boholo ba ts'ebetso. Pitso e 'ngoe le e' ngoe e eang ho motho ea fumanang mohlala, leha Singleton e se e qalisoa ka botlalo, e baka ho notlela le ho notlolla, e leng ntho e sa hlokahaleng ebile e bitsa chelete e ngata. Sena se tšoana le ho haha ​​mokhoa oa khoebo moo mosebeletsi e mong le e mong a tlamehang ho kopa senotlolo sa kamore nako e telele ka mor'a hore lemati le notleloe ka ho sa feleng-e leng tšenyo ea nako le lisebelisoa. Ka mokhoa o phahameng oa ts'ebetso ea modular joalo ka Mewayz, ho se sebetse ho joalo maemong a mantlha ho ka se amoheloe.

Tharollo ea Sejoale-joale ea C++: `std::call_once` le The Magic Statics

Maemo a C++11 a tlisitse lisebelisoa tse matla tse ntlafalitseng ts'ebetsong ea Singleton haholo. Mokhoa o matla ka ho fetesisa le o khothaletsoang haholo kajeno o sebelisa karolo ea "Magic Static". Ka ho phatlalatsa mohlala oa Singleton e le phetoho e tsitsitseng ka har'a ts'ebetso (ho e-na le "static" ea sehlopha), re sebelisa tiisetso ea puo ea hore mefuta e sa fetoheng e qalisoa ka mokhoa o sireletsehileng oa khoele. Moqapi o sebetsana le liloko tse hlokahalang tlas'a hood, empa feela nakong ea ho qalisoa ha pele. Mehala e latelang e potlakile joalo ka tlhahlobo e bonolo ea pointer. Mokhoa ona, o atisang ho sebelisoa `std::call_once` bakeng sa taolo e hlakileng, o fana ka ts'ebetso e botsoa le ts'ebetso e phahameng.

Ha Tshebetso e le Ntho e ka Sehloohong: The Meyers Singleton

Ts'ebetsong e khethehileng ea "Magic Static" e ntle haholo ebile e sebetsa hantle hoo e reheletsoeng ka 'mampoli oa eona, Scott Meyers. Meyers Singleton hangata e nkuoa e le tharollo ea ts'ebetso e ntle ka ho fetesisa bakeng sa C++ ea sejoale-joale. E khuts'oane ka mokhoa o makatsang:

Qetello: Ho Khetha Sesebediswa se Nepahetseng Bakeng sa Mosebetsi

Tlhokotso ea "C++" e ntle ka ho fetisisa ea ts'ebetso ea Singleton e fella ka mekhoa ea sejoale-joale e lumelletsoeng ke C++11 le ho feta. Le ha Meyers Singleton e le khetho e ntle ka ho fetesisa, ts'ebetso e "molemo" qetellong e ipapisitse le mathata a hau a ikhethileng. Bakeng sa maemo ao le litšenyehelo tsa cheke li phahame haholo, ho ka nahanoa Singleton e hahiloeng ka hloko e behiloeng sebakeng sa mabitso sa lefatše, leha sena se senya tlhahiso ea botsoa. Ntho ea bohlokoa ke ho utloisisa likamano tsa lichelete. Joalo ka ha Mewayz e fana ka likarolo tsa modular tseo u ka li hlophisang bakeng sa ts'ebetso e nepahetseng ea khoebo, khetho ea hau ea mohlala oa Singleton e lokela ho ba qeto e entsoeng ka boomo e ipapisitseng le litlhoko tsa kopo ea hau bakeng sa polokeho ea likhoele, nako ea ho qala, le makhetlo a phihlello. Ka ho khetha ts'ebetsong ea sejoale-joale, e matlafalitsoeng ke mokopanyi, u theha motheo o tiileng le o sebetsang hantle joalo ka litsamaiso tseo u ikemiselitseng ho li theha.

Haha Khoebo ea Hao ea Tsamaiso Kajeno

Ho tloha ho batho ba ikemetseng ho isa mekhatlong, Mewayz e matlafatsa likhoebo tse 138,000+ ka likarolo tse 208 tse kopaneng. Qala mahala, ntlafatsa ha o hola.

Theha Account Free →