ዝበለጸ ኣፈጻጽማ ናይ C++ ሲንግልተን | Mewayz Blog Skip to main content
Hacker News

ዝበለጸ ኣፈጻጽማ ናይ C++ ሲንግልተን

ርእይቶታት

1 min read Via andreasfertig.com

Mewayz Team

Editorial Team

Hacker News

ምድላይ ፍጹም ሲንግልተን፡ ነባሪ ብድሆ ሲ++

ኣብቲ ሰፊሕ መልክዕ ቅዲ ዲዛይን ሶፍትዌር፡ ከም ሲንግልተን ብዙሕ ክትዕ፡ ምህዞ፡ ዋላ’ውን ክትዕ ዘበገሱ ውሑዳት እዮም። ዕላምኡ ብመታለሊ መንገዲ ቀሊል እዩ፡ ሓደ ክፍሊ ሓደ ተርእዮ ጥራይ ከም ዘለዎ ምርግጋጽን ዓለማዊ ነጥቢ ምብጻሕ ንዕኡ ምሃብን። ካብ ምምሕዳር ቅጥዕታት ውቅር ክሳብ ምቁጽጻር ምብጻሕ ናብ ሓደ ዝተኻፈለ ጸጋ ከም ዳታቤዝ ምትእስሳር ፑል፡ እቲ ሲንግልተን ቅዲ ንሓደ ልሙድ ድሌት ይምልስ። ይኹን እምበር ኣብ ሲ++ ንፈትሊ ውሑስ ዝኾነ፣ ስሉጥን ካብ ረቂቕ መጻወድያታት ነጻ ዝኾነን ሲንግልተን ምዕዋት ብፍልቀት ናይቲ ቋንቋ ባዕሉ ዝግበር ጉዕዞ እዩ። ንሱ ድማ ነቲ ብድሕሪ ከም በዓል መዋይዝ ዝኣመሰሉ መድረኻት ዘሎ ፍልስፍና ዘንጸባርቕ ምድላይ ኣፈጻጽማን ተኣማንነትን ኮይኑ፡ ድልዱልን ስሉጥን ሞዱላር ኣካላት ንምህናጽ ርጉእ ንግዳዊ ስርዓተ-ምሕደራ ኣገደስቲ እዮም። እቲ "ዝበለጸ" ኣተገባብራ ሓደ መልሲ ዘይኮነስ ንናይ ፕሮጀክትካ ዓውዲ ፍሉይ ዝኾነ ሚዛን ጠለባት እዩ።

እቲ ገርሂ ጅማሮን ሓደጋታት ብዙሕ ፈትሊ

እቲ ኣዝዩ ቅኑዕ ኣተገባብራ ሲንግልተን ኣብ ቀዳማይ ጻውዒት ነቲ ምሳሌ ዝፈጥር ስታትቲክ ፋንክሽን ይጥቀም። ይኹን እምበር እዚ ክላሲካል ኣገባብ ኣብዛ ብዙሕ ፈትሊ ዘለዋ ዓለም ወሳኒ ጉድለት ኣለዎ። ብዙሓት ፈትሊታት ብሓንሳብ እቲ ምሳሌ እንተሃልዩ እንተፈቲሾም፡ ኩሎም ባዶ ኮይኑ ረኺቦም ናይ ገዛእ ርእሶም ምሳሌታት ንምፍጣር ክቕጽሉ ይኽእሉ፡ እዚ ድማ ነቲ ቀንዲ መትከል ናይቲ ቅዲ ንጹር ምጥሓስ የስዕብ። ኣብ ዙርያ እቲ ናይ ምፍጣር ሎጂክ ሙቴክስ ሎክ ምውሳኽ ነቲ ናይ ዳታ ውድድር ክፈትሖ እንከሎ፡ ርኡይ ናይ ኣፈጻጽማ ዕንቅፋት ግን የተኣታቱ። ነፍሲ ወከፍ ጻውዒት ናብቲ instance-getter፡ ዋላ’ውን Singleton ምሉእ ብምሉእ ምስ ተጀመረ፡ ናይ ምዕጻውን ምኽፋትን ልዕሊ ዓቐን ወጻኢታት የስዕብ፡ እዚ ድማ ኣድላዪን ብዙሕ ወጻኢታት ዝሓትትን እዩ። እዚ ምስ ምህናጽ መስርሕ ንግዲ ዝመሳሰል ኮይኑ፡ ነፍሲ ወከፍ ሰራሕተኛ ማዕጾ ንሓዋሩ ምስ ተኸፍተ ነዊሕ ድሕሪ ምጽናሕ መፍትሕ ናይ ሓደ ክፍሊ ክሓትት ኣለዎ-ግዜን ጸጋታትን ምብኻን እዩ። ኣብ ከም መዋይዝ ዝኣመሰለ ልዑል ብቕዓት ዘለዎ ሞዱላዊ ስርዓት፡ ከምዚ ዓይነት ዘይብቕዓት ብደረጃ ቀንዲ ቅቡል ኣይምኾነን።

ዘመናዊ መፍትሒ ሲ++፡ `std::call_once` ከምኡ’ውን ዘ ማጂክ ስታቲክስ

እቲ C++11 ስታንዳርድ ንኣተገባብራ ሲንግልተን ብዓቢኡ ዘመሓይሹ ሓያላት መሳርሒታት ኣምጺኡ። ሎሚ እቲ ኣዝዩ ድልዱልን ብሰፊሑ ዝምከርን ኣገባብ "ማጂክ ስታቲክ" ዝብል ባህሪ ይጥቀም። ነቲ ሲንግልተን ኢንስታንስ ኣብ ውሽጢ እቲ ፋንክሽን ከም ስታትቲክ ተለዋዋጢ (ኣብ ክንዲ ከም ክላስ ስታቲክ) ብምእዋጅ፡ ስታትቲክ ተለዋዋጢ ቁጽሪ ብፍሕሶ-ውሑስ ኣገባብ ከም ዝጅመሩ ናይቲ ቋንቋ ውሕስነት ንጥቀመሉ። እቲ ኣከባቢርካ ኣብ ትሕቲ ሽፋን ኣድለይቲ መዕጸዊታት ይሕዝ፣ ግን ኣብ እዋን መጀመርታ ምጅማር ጥራይ። ስዒቡ ዝመጽእ ጻውዒታት ከም ቀሊል ጠቋሚ ምፍታሽ ቅልጡፍ እዩ። እዚ መብዛሕትኡ ግዜ ንግልጺ ቁጽጽር `std::call_once` ብምጥቃም ዝትግበር ኣገባብ፡ ንኽልቲኡ ሰነፍ ምጅማርን ልዑል ኣፈጻጽማን ይህብ።

    ዝብል ጽሑፍ ኣሎ።
  • Thread-Safe Initialization: ብC++ ደረጃ ውሕስነት ዘለዎ፣ ኣብ ምፍጣር ኩነታት ዓሌት ዘወግድ።
  • Lazy Instantiation: እቲ ምሳሌ መጀመርታ ኣብ ዘድልየሉ እዋን ጥራይ እዩ ዝፍጠር፣ ጸጋታት ብምዕቃብ።
  • ውሑድ ናይ ምዝዋር ግዜ ልዕለ-ዋጋ: ድሕሪ ምጅማር፡ ነቲ ምሳሌ ንምብጻሕ ዝወጽእ ወጻኢታት ንእሽቶ እዩ።
  • ቀሊልነት፡ እቲ ኮድ ጽሩይ፡ ንምርዳእ ቀሊልን ክትጋገ ኣጸጋምን እዩ።
ዝብል ጽሑፍ ኣሎ።

እዚ ሚዛን ድሕነት፡ ብቕዓትን ምቕላልን ንመብዛሕትኡ ኣፕሊኬሽናት ወርቃዊ መለክዒ እዩ። ሓደ ቀንዲ ሞዱል፡ ልክዕ ከምቲ ኣብ ውሽጢ ሜዋይዝ ኦኤስ ዘሎ ኣገልግሎት፡ ብዘተኣማምን መንገዲ ከም ዝምሰልን ኣብ ምሉእ ዑደት ህይወት ናይቲ መተግበሪ ብዝበለጸ ኣፈጻጽማ ከም ዝሰርሕን የረጋግጽ።

ኣፈጻጽማ ልዕሊ ኩሉ ክኸውን ከሎ: ዘ ሜየርስ ሲንግልተን

ፍሉይ ኣተገባብራ ናይቲ "ማጂክ ስታቲክ" ቅዲ ኣዝዩ ውቁብን ውጽኢታውን ስለ ዝኾነ ብስም ሻምፕዮንኡ ስኮት ሜየርስ ተሰይሙ። መብዛሕትኡ ግዜ እቲ ሜየርስ ሲንግልተን ንዘመናዊ ሲ++ ዝበለጸ ሓፈሻዊ ዕላማ ዘለዎ ናይ ኣፈጻጽማ መፍትሒ ተባሂሉ ይውሰድ። ብዘገርም መንገዲ ጽፉፍ እዩ:

<ብሎክኮት> ዝብል ጽሑፍ ኣሎ። "እቲ ሜየርስ ሲንግልተን ምናልባት እቲ ዝበለጸ ስሉጥ መንገዲ ንሓደ ሲንግልተን ኣብ C++ ንምትግባር ክኸውን ይኽእል'ዩ ምኽንያቱ ነቲ ናይቲ ኣከባቢርካ ትሬድ-ውሑስ ስታቲካዊ ምጅማር ስለዝጥቀመሉ፡ ድሕሪ ቀዳማይ ጻውዒት ምቹእ ኣፈጻጽማ ይህብ።" ዝብል ጽሑፍ ኣሎ።

እዚ ቅዲ እዚ ድሕሪ ምጅማር ብተደጋጋሚ ንዝረኽብዎም Singletons ምቹእ እዩ። ናይ ኣፈጻጽማ ባህርያቱ ምስ ድሌታት ከም መዋይዝ ዝኣመሰለ ስርዓት ዝሰማማዕ ኮይኑ፡ ቀንዲ ኣገልግሎታት ምድንጓይ ከየተኣታተወ ብቕጽበት ክረኽብዎ ኣለዎም፡ እዚ ድማ እቲ ዝዓበየ ዋሕዚ ስራሕ ንግዲ ስሉጥን ምላሽ ዝህብን ኮይኑ ከም ዝቕጽል የረጋግጽ።

💡 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 →

መደምደምታ፡ ንስራሕ ትኽክለኛ መሳርሒ ምምራጽ

እቲ "ዝበለጸ" ኣፈጻጽማ ሲ++ ሲንግልተን ዝግበር ጻዕሪ ኣብቲ ብሲ++11ን ኪኖኡን ዝኽእሎ ዘመናዊ ቅዲታት ይዛዘም። ሜየርስ ሲንግልተን ብሉጽ ነባሪ ምርጫ ክኸውን ከሎ፡ እቲ "ዝበለጸ" ኣፈጻጽማ ኣብ መወዳእታ ኣብ ፍሉይ ደረታትካ ይምርኮስ። ዋላ እኳ ዋጋ ናይ ጠቋሚ ምፍታሽ ኣዝዩ ልዑል ዝኾነሉ ስናርዮታት፡ ኣብ ዓለማዊ ቦታ ስም ዝተቐመጠ ብጥንቃቐ ዝተሃንጸ ሲንግልተን ክሕሰብ ይኽእል እዩ፡ እዚ ግን ሰነፍ ምጅማር መስዋእቲ እንተኾነ። እቲ ቁልፊ ነገር ነቲ ምትሕውዋስ ምርዳእ እዩ። ልክዕ ከምቲ Mewayz ንዝበለጸ ንግዳዊ ኣፈጻጽማ ክትውቅሮም እትኽእል ሞዱላር ኣካላት ዝህብ፡ ምርጫኻ ናይ Singleton ቅዲ፡ ኣብ ናይ መተግበሪኻ ጠለባት ንውሕስነት ፈትሊ፡ ናይ ምጅማር ግዜን ናይ ምብጻሕ ፍሪኩዌንሲን ዝተመርኮሰ ኮነ ኢልካ ዝግበር ውሳነ ክኸውን ኣለዎ። ዘመናዊ፡ ብኣከባቢርካ ዝግደድ ኣተገባብራ ብምምራጽ፡ ከምቲ ክትፈጥሮ ዝሓሰብካዮ ስርዓታት ድልዱልን ልዑል ብቕዓት ዘለዎን መሰረት ትሃንጽ።

ብተደጋጋሚ ዝሕተቱ ሕቶታት

ምድላይ ፍጹም ሲንግልተን፡ ነባሪ ብድሆ ሲ++

ኣብቲ ሰፊሕ መልክዕ ቅዲ ዲዛይን ሶፍትዌር፡ ከም ሲንግልተን ብዙሕ ክትዕ፡ ምህዞ፡ ዋላ’ውን ክትዕ ዘበገሱ ውሑዳት እዮም። ዕላምኡ ብመታለሊ መንገዲ ቀሊል እዩ፡ ሓደ ክፍሊ ሓደ ተርእዮ ጥራይ ከም ዘለዎ ምርግጋጽን ዓለማዊ ነጥቢ ምብጻሕ ንዕኡ ምሃብን። ካብ ምምሕዳር ቅጥዕታት ውቅር ክሳብ ምቁጽጻር ምብጻሕ ናብ ሓደ ዝተኻፈለ ጸጋ ከም ዳታቤዝ ምትእስሳር ፑል፡ እቲ ሲንግልተን ቅዲ ንሓደ ልሙድ ድሌት ይምልስ። ይኹን እምበር ኣብ ሲ++ ንፈትሊ ውሑስ ዝኾነ፣ ስሉጥን ካብ ረቂቕ መጻወድያታት ነጻ ዝኾነን ሲንግልተን ምዕዋት ብፍልቀት ናይቲ ቋንቋ ባዕሉ ዝግበር ጉዕዞ እዩ። ንሱ ድማ ነቲ ብድሕሪ ከም በዓል መዋይዝ ዝኣመሰሉ መድረኻት ዘሎ ፍልስፍና ዘንጸባርቕ ምድላይ ኣፈጻጽማን ተኣማንነትን ኮይኑ፡ ድልዱልን ስሉጥን ሞዱላር ኣካላት ንምህናጽ ርጉእ ንግዳዊ ስርዓተ-ምሕደራ ኣገደስቲ እዮም። እቲ "ዝበለጸ" ኣተገባብራ ሓደ መልሲ ዘይኮነስ ንናይ ፕሮጀክትካ ዓውዲ ፍሉይ ዝኾነ ሚዛን ጠለባት እዩ።

ገርሂ ጅማሮን ሓደጋታት ብዙሕ ፈትሊ

እቲ ኣዝዩ ቅኑዕ ኣተገባብራ ሲንግልተን ኣብ ቀዳማይ ጻውዒት ነቲ ምሳሌ ዝፈጥር ስታትቲክ ፋንክሽን ይጥቀም። ይኹን እምበር እዚ ክላሲካል ኣገባብ ኣብዛ ብዙሕ ፈትሊ ዘለዋ ዓለም ወሳኒ ጉድለት ኣለዎ። ብዙሓት ፈትሊታት ብሓንሳብ እቲ ምሳሌ እንተሃልዩ እንተፈቲሾም፡ ኩሎም ባዶ ኮይኑ ረኺቦም ናይ ገዛእ ርእሶም ምሳሌታት ንምፍጣር ክቕጽሉ ይኽእሉ፡ እዚ ድማ ነቲ ቀንዲ መትከል ናይቲ ቅዲ ንጹር ምጥሓስ የስዕብ። ኣብ ዙርያ እቲ ናይ ምፍጣር ሎጂክ ሙቴክስ ሎክ ምውሳኽ ነቲ ናይ ዳታ ውድድር ክፈትሖ እንከሎ፡ ርኡይ ናይ ኣፈጻጽማ ዕንቅፋት ግን የተኣታቱ። ነፍሲ ወከፍ ጻውዒት ናብቲ instance-getter፡ ዋላ’ውን Singleton ምሉእ ብምሉእ ምስ ተጀመረ፡ ናይ ምዕጻውን ምኽፋትን ልዕሊ ዓቐን ወጻኢታት የስዕብ፡ እዚ ድማ ኣድላዪን ብዙሕ ወጻኢታት ዝሓትትን እዩ። እዚ ምስ ምህናጽ መስርሕ ንግዲ ዝመሳሰል ኮይኑ፡ ነፍሲ ወከፍ ሰራሕተኛ ማዕጾ ንሓዋሩ ምስ ተኸፍተ ነዊሕ ድሕሪ ምጽናሕ መፍትሕ ናይ ሓደ ክፍሊ ክሓትት ኣለዎ-ግዜን ጸጋታትን ምብኻን እዩ። ኣብ ከም መዋይዝ ዝኣመሰለ ልዑል ብቕዓት ዘለዎ ሞዱላዊ ስርዓት፡ ከምዚ ዓይነት ዘይብቕዓት ብደረጃ ቀንዲ ቅቡል ኣይምኾነን።

ዘመናዊ መፍትሒ ሲ++፡ `std::call_once` ከምኡ’ውን ዘ ማጂክ ስታቲክስ

እቲ C++11 ስታንዳርድ ንኣተገባብራ ሲንግልተን ብዓቢኡ ዘመሓይሹ ሓያላት መሳርሒታት ኣምጺኡ። ሎሚ እቲ ኣዝዩ ድልዱልን ብሰፊሑ ዝምከርን ኣገባብ "ማጂክ ስታቲክ" ዝብል ባህሪ ይጥቀም። ነቲ ሲንግልተን ኢንስታንስ ኣብ ውሽጢ እቲ ፋንክሽን ከም ስታትቲክ ተለዋዋጢ (ኣብ ክንዲ ከም ክላስ ስታቲክ) ብምእዋጅ፡ ስታትቲክ ተለዋዋጢ ቁጽሪ ብፍሕሶ-ውሑስ ኣገባብ ከም ዝጅመሩ ናይቲ ቋንቋ ውሕስነት ንጥቀመሉ። እቲ ኣከባቢርካ ኣብ ትሕቲ ሽፋን ኣድለይቲ መዕጸዊታት ይሕዝ፣ ግን ኣብ እዋን መጀመርታ ምጅማር ጥራይ። ስዒቡ ዝመጽእ ጻውዒታት ከም ቀሊል ጠቋሚ ምፍታሽ ቅልጡፍ እዩ። እዚ መብዛሕትኡ ግዜ ንግልጺ ቁጽጽር `std::call_once` ብምጥቃም ዝትግበር ኣገባብ፡ ንኽልቲኡ ሰነፍ ምጅማርን ልዑል ኣፈጻጽማን ይህብ።

ኣፈጻጽማ ልዕሊ ኩሉ ክኸውን ከሎ: ዘ ሜየርስ ሲንግልተን

ፍሉይ ኣተገባብራ ናይቲ "ማጂክ ስታቲክ" ቅዲ ኣዝዩ ውቁብን ውጽኢታውን ስለ ዝኾነ ብስም ሻምፕዮንኡ ስኮት ሜየርስ ተሰይሙ። መብዛሕትኡ ግዜ እቲ ሜየርስ ሲንግልተን ንዘመናዊ ሲ++ ዝበለጸ ሓፈሻዊ ዕላማ ዘለዎ ናይ ኣፈጻጽማ መፍትሒ ተባሂሉ ይውሰድ። ብዘገርም መንገዲ ጽፉፍ እዩ:

መደምደምታ፡ ንስራሕ ትኽክለኛ መሳርሒ ምምራጽ

እቲ "ዝበለጸ" ኣፈጻጽማ ሲ++ ሲንግልተን ዝግበር ጻዕሪ ኣብቲ ብሲ++11ን ኪኖኡን ዝኽእሎ ዘመናዊ ቅዲታት ይዛዘም። ሜየርስ ሲንግልተን ብሉጽ ነባሪ ምርጫ ክኸውን ከሎ፡ እቲ "ዝበለጸ" ኣፈጻጽማ ኣብ መወዳእታ ኣብ ፍሉይ ደረታትካ ይምርኮስ። ዋላ እኳ ዋጋ ናይ ጠቋሚ ምፍታሽ ኣዝዩ ልዑል ዝኾነሉ ስናርዮታት፡ ኣብ ዓለማዊ ቦታ ስም ዝተቐመጠ ብጥንቃቐ ዝተሃንጸ ሲንግልተን ክሕሰብ ይኽእል እዩ፡ እዚ ግን ሰነፍ ምጅማር መስዋእቲ እንተኾነ። እቲ ቁልፊ ነገር ነቲ ምትሕውዋስ ምርዳእ እዩ። ልክዕ ከምቲ Mewayz ንዝበለጸ ንግዳዊ ኣፈጻጽማ ክትውቅሮም እትኽእል ሞዱላር ኣካላት ዝህብ፡ ምርጫኻ ናይ Singleton ቅዲ፡ ኣብ ናይ መተግበሪኻ ጠለባት ንውሕስነት ፈትሊ፡ ናይ ምጅማር ግዜን ናይ ምብጻሕ ፍሪኩዌንሲን ዝተመርኮሰ ኮነ ኢልካ ዝግበር ውሳነ ክኸውን ኣለዎ። ዘመናዊ፡ ብኣከባቢርካ ዝግደድ ኣተገባብራ ብምምራጽ፡ ከምቲ ክትፈጥሮ ዝሓሰብካዮ ስርዓታት ድልዱልን ልዑል ብቕዓት ዘለዎን መሰረት ትሃንጽ።

ሎሚ ናይ ቢዝነስ ኦኤስካ ሃንጽ

ካብ ነጻ ሞያውያን ክሳብ ትካላት፡ መዋይዝ ን138,000+ ትካላት ንግዲ ብ208 ዝተዋሃሃዱ ሞዱላት ሓይሊ ይህብ። ብነጻ ጀምር፣ ምስ ዓበኻ ኣዕብዮ።

ነጻ ኣካውንት ምፍጣር →
ዝብል ጽሑፍ ኣሎ።

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 6,208+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,208+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime