ውርስ vs ኮንቴነር
ውርስ እና ኮንቴይነርሺፕ በOOP (የነገር ተኮር ፕሮግራሚንግ ምሳሌ፡ C++) ውስጥ የሚገኙ ሁለት ጠቃሚ ፅንሰ ሀሳቦች ናቸው። በቀላል አነጋገር፣ ሁለቱም ኮንቴይነር እና ውርስ ለአንድ ክፍል ተጨማሪ ንብረቶችን ወይም ባህሪን ከማቅረብ ጋር ይገናኛሉ። ውርስ ለአንድ ክፍል ከወላጅ ክፍል ንብረቶችን እና ባህሪን በማራዘም የመውረስ ችሎታ ነው። በሌላ በኩል፣ ኮንቴይነርሺፕ የአንድ ክፍል የተለያዩ ክፍሎች ያሉ ነገሮችን እንደ አባል ውሂብ የማካተት ችሎታ ነው።
ውርስ ምንድን ነው?
ከላይ እንደተገለፀው ውርስ ለአንድ ክፍል ከወላጅ ክፍል ንብረቶችን እና ባህሪን በማራዘም የመውረስ ችሎታ ነው።ውርስ በመሠረቱ የነባር ክፍል ንብረቶችን እና ባህሪን በአዲስ የተገለጸ ክፍል በመፍቀድ እንደገና ጥቅም ላይ ማዋልን ይሰጣል። ክፍል A B ን ከተራዘመ፣ ክፍል B የወላጅ ክፍል (ወይም ሱፐር መደብ) ተብሎ ይጠራል እና ክፍል A ደግሞ የሕፃን ክፍል (ወይም የተገኘ ክፍል/ንዑስ ክፍል) ይባላል። በዚህ ምሳሌ ሁኔታ፣ ክፍል ሀ ሁሉንም የህዝብ እና የተጠበቁ ባህሪያትን እና የሱፐር መደብ (B) ዘዴዎችን ይወርሳል። ንዑስ ክፍል ከወላጅ ክፍል የተወረሰውን ባህሪ በአማራጭ መሻር (አዲስ ወይም የተራዘመ ተግባርን ለዘዴዎች ያቀርባል) ይችላል። ውርስ በOOP ውስጥ የ"is-a" ግንኙነትን ይወክላል። ይህ በመሠረቱ ሀ ደግሞ ለ ነው ማለት ነው። በገሃዱ ዓለም የፕሮግራም አወጣጥ ችግር ውስጥ፣ የሰራተኛ ክፍልን ለመፍጠር የሰው ክፍል ሊራዘም ይችላል። ይህ ስፔሻላይዜሽን ይባላል። ግን መጀመሪያ የሰራተኛ ክፍልን መፍጠር እና ከዚያም ወደ ግለሰብ ክፍል ማጠቃለልም ይችላሉ (i.ሠ. አጠቃላይ). በዚህ ምሳሌ፣ ተቀጣሪው የግለሰቡ ንብረቶች እና ባህሪ (ማለትም ተቀጣሪም ሰው ነው) እና አንዳንድ ተጨማሪ ተግባራትን ሊይዝ ይችላል (ስለዚህ፣ ሰው ተቀጣሪ አይደለም) እንዲሁም።
ኮንቴይነር ምንድን ነው?
መያዣ ማለት የአንድ ክፍል የተለያዩ ክፍሎች ያሉ ነገሮችን እንደ አባል ውሂብ የማካተት ችሎታ ነው። ለምሳሌ፣ ክፍል A እንደ አባል የክፍል B ነገር ሊይዝ ይችላል። እዚህ በ B ውስጥ የተገለጹት ሁሉም ህዝባዊ ዘዴዎች (ወይም ተግባራት) በክፍል A ውስጥ ሊፈጸሙ ይችላሉ. ክፍል A መያዣ ይሆናል, ክፍል B ደግሞ የያዘው ክፍል ይሆናል. ኮንቴይነር ደግሞ ጥንቅር ተብሎም ይጠራል። በዚህ ምሳሌ፣ ክፍል A ከክፍል B ያቀፈ ነው ማለት ይቻላል። በኦኦፒ ውስጥ ኮንቴይነርሺፕ የ"ሃስ-a" ግንኙነትን ይወክላል። ምንም እንኳን መያዣው ሁሉንም የክፍሉን የህዝብ ዘዴዎች ለማስፈፀም ቢችልም, ተጨማሪ ተግባራትን ለመለወጥ ወይም ለማቅረብ እንደማይችል ልብ ሊባል የሚገባው ነው. ወደ እውነተኛው ዓለም የፕሮግራም አወጣጥ ችግር ስንመጣ፣ የክፍል ቴክስትቦክስ ነገር በክፍል ፎርም ውስጥ ሊይዝ ይችላል፣ ስለዚህም ቅጹ ቴክስትቦክስን ይይዛል (ወይም በአማራጭ፣ ፎርም በቴክስትቦክስ የተዋቀረ ነው) ሊባል ይችላል።
በውርስ እና በመያዣው መካከል ያለው ልዩነት
ውርስ እና ኮንቴይነር ሁለት የኦኦፒ ፅንሰ-ሀሳቦች ቢሆኑም ፕሮግራሚር እንዲያሳካቸው በሚፈቅዱት ነገር ላይ በጣም የተለያዩ ናቸው። ውርስ ለአንድ ክፍል ከወላጅ ክፍል ንብረቶችን እና ባህሪን በማራዘም የመውረስ ችሎታ ሲሆን ኮንቴይነርሺፕ ደግሞ የአንድ ክፍል የተለያዩ ክፍሎች ያሉ ነገሮችን እንደ አባል መረጃ የመያዝ ችሎታ ነው። አንድ ክፍል ከተራዘመ ሁሉንም ህዝባዊ እና የተጠበቁ ንብረቶችን/ ባህሪን ይወርሳል እና እነዚያ ባህሪያት በንዑስ መደብ ሊሽሩ ይችላሉ። ነገር ግን አንድ ክፍል በሌላ ውስጥ ከተያዘ, መያዣው በተያዘው ውስጥ ባህሪን ለመለወጥ ወይም ለመጨመር ችሎታ አያገኝም. ውርስ በOOP ውስጥ የ"is-a" ግንኙነትን ይወክላል፣ ኮንቴይነርሺፕ ደግሞ "ያለው" ግንኙነትን ይወክላል።