አብስትራክት ክፍል vs ኮንክሪት ክፍል
አብዛኞቹ ታዋቂ ዘመናዊ ነገሮች ተኮር የፕሮግራሚንግ ቋንቋዎች እንደ ጃቫ እና ሲ ክፍልን መሰረት ያደረጉ ናቸው። በነገሮች ላይ ያተኮሩ ፅንሰ-ሀሳቦችን እንደ ማቀፊያ፣ ውርስ እና ፖሊሞርፊዝም ክፍሎችን በመጠቀም ያሳካሉ። ክፍሎች የገሃዱ ዓለም ነገሮች ረቂቅ መግለጫ ናቸው። ክፍሎች እንደ ዘዴ ተግባራዊነታቸው የትግበራ ደረጃ ላይ በመመስረት ኮንክሪት ወይም ረቂቅ ሊሆኑ ይችላሉ። የኮንክሪት ክፍል ሁሉንም ዘዴዎች ሙሉ በሙሉ ተግባራዊ ያደርጋል. አንድ አብስትራክት ክፍል እንደ የተወሰነ ስሪት ሊወሰድ ይችላል መደበኛ (ኮንክሪት) ክፍል፣ እሱም በከፊል የተተገበሩ ዘዴዎችን ሊይዝ ይችላል።በተለምዶ የኮንክሪት ክፍሎች እንደ (ልክ) ክፍሎች ይባላሉ።
ኮንክሪት ክፍል ምንድን ነው?
ነባሪው ክፍል የኮንክሪት ክፍል ነው። የክፍል ቁልፍ ቃሉ ክፍሎችን ለመግለጽ ጥቅም ላይ ይውላል (ለምሳሌ በጃቫ)። እና ብዙውን ጊዜ እነሱ በቀላሉ እንደ ክፍሎች ይጠቀሳሉ (ያለ ኮንክሪት ኮንክሪት)። የኮንክሪት ክፍሎች የገሃዱ ዓለም ዕቃዎችን ፅንሰ-ሃሳባዊ ውክልና ያሳያሉ። ክፍሎች ባህሪያት የሚባሉት ባህሪያት አሏቸው. ባህሪያት እንደ ዓለም አቀፍ እና ምሳሌ ተለዋዋጮች ይተገበራሉ። በክፍሎቹ ውስጥ ያሉት ዘዴዎች የእነዚህን ክፍሎች ባህሪ ይወክላሉ ወይም ይገልጻሉ። የክፍል ዘዴዎች እና ባህሪያት የክፍሉ አባላት ይባላሉ. በተለምዶ ኢንካፕሌሽን የሚገኘው ባህሪያቱን የግል በማድረግ ሲሆን ህዝባዊ ዘዴዎችን በመፍጠር እነዚያን ባህሪያት ለመድረስ ጥቅም ላይ ሊውል ይችላል. ዕቃ የአንድ ክፍል ምሳሌ ነው። ውርስ ተጠቃሚው ክፍሎችን (ንዑስ ክፍሎች ይባላሉ) ከሌሎች ክፍሎች (ሱፐር ክፍሎች ተብለው ይጠራሉ) እንዲያራዝም ያስችለዋል። ፖሊሞርፊዝም የፕሮግራም አድራጊው የሱፐር መደብ በሆነው ነገር ምትክ የአንድ ክፍልን ነገር እንዲተካ ያስችለዋል።በተለምዶ፣ በችግር ፍቺ ውስጥ የሚገኙት ስሞች በቀጥታ በፕሮግራሙ ውስጥ ክፍሎች ይሆናሉ። እና በተመሳሳይ, ግሶች ዘዴዎች ይሆናሉ. ይፋዊ፣ ግላዊ እና ጥበቃ የሚደረግላቸው ለክፍሎች የሚጠቀሙባቸው የተለመዱ የመዳረሻ ማስተካከያዎች ናቸው።
አብስትራክት ክፍል ምንድነው?
የአብስትራክት ክፍሎች የአብስትራክት ቁልፍ ቃል (ለምሳሌ በጃቫ፣) ተጠቅመው ይታወቃሉ። በተለምዶ፣ የአብስትራክት ክፍሎች፣ እንዲሁም Abstract Base Classes (ABC) በመባልም የሚታወቁት፣ በቅጽበት ሊደረጉ አይችሉም (የዚያ ክፍል ምሳሌ መፍጠር አይቻልም)። ስለዚህ፣ የአብስትራክት ክፍሎች ትርጉም ያላቸው የፕሮግራም አወጣጥ ቋንቋ ውርስ የሚደግፍ ከሆነ ብቻ ነው (ክፍልን ከማራዘም ንዑስ ክፍሎችን የመፍጠር ችሎታ)። አብስትራክት ክፍሎች አብዛኛውን ጊዜ ከፊል ወይም ምንም ትግበራ የሌለውን ረቂቅ ጽንሰ-ሐሳብ ወይም አካልን ይወክላሉ። ስለዚህ የአብስትራክት ክፍሎች የልጆች ክፍሎች የተገኙበት የወላጅ ክፍሎች ሆነው ያገለግላሉ ስለዚህም የልጁ ክፍል ያልተሟሉ የወላጅ ክፍል ባህሪያትን እንዲጋራ እና እነሱን ለማጠናቀቅ ተግባራዊነት መጨመር ይቻላል.
የአብስትራክት ክፍሎች የአብስትራክት ዘዴዎችን ሊይዙ ይችላሉ።ረቂቅ ክፍልን የሚያራዝሙ ንዑስ ክፍሎች እነዚህን (የተወረሱ) የአብስትራክት ዘዴዎችን ሊተገበሩ ይችላሉ። የሕፃኑ ክፍል እነዚህን ሁሉ የአብስትራክት ዘዴዎች ተግባራዊ ካደረገ የኮንክሪት ክፍል ይሆናል። ካልሆነ ግን የልጁ ክፍል እንዲሁ የአብስትራክት ክፍል ይሆናል። ይህ ሁሉ ማለት የፕሮግራም አውጪው ክፍልን እንደ አብስትራክት ሲሰይም ክፍሉ ያልተሟላ እንደሚሆን እና በወራሾች ንዑስ ክፍሎች መሟላት ያለባቸው ንጥረ ነገሮች እንዳሉት እየተናገረች ነው። ይህ በሁለት ፕሮግራመሮች መካከል ስምምነት ለመፍጠር ጥሩ መንገድ ነው ፣ ይህም በሶፍትዌር ልማት ውስጥ ያሉ ተግባራትን ቀላል ያደርገዋል። ለመውረስ ኮድ የምትጽፈው ፕሮግራመር፣ የስልት ፍቺዎችን በትክክል መከተል አለባት (ግን በእርግጥ የራሷ አተገባበር ሊኖራት ይችላል።)
በአብስትራክት ክፍል እና ኮንክሪት ክፍል መካከል ያለው ልዩነት ምንድን ነው?
የአብስትራክት ክፍሎች አብዛኛውን ጊዜ ከፊል ወይም ምንም ትግበራ የላቸውም። በሌላ በኩል, የኮንክሪት ክፍሎች ሁልጊዜ ባህሪውን ሙሉ በሙሉ ተግባራዊ ያደርጋሉ. እንደ ኮንክሪት ክፍሎች፣ አብስትራክት ክፍሎች በቅጽበት ሊደረጉ አይችሉም።ስለዚህ የአብስትራክት ክፍሎች ጠቃሚ እንዲሆኑ ማራዘም አለባቸው። የአብስትራክት ክፍሎች ረቂቅ ዘዴዎችን ሊይዙ ይችላሉ፣ ግን ተጨባጭ ክፍሎች ግን አይችሉም። የአብስትራክት ክፍል ሲራዘም ሁሉም ዘዴዎች (ሁለቱም አብስትራክት እና ኮንክሪት) በዘር የሚተላለፉ ናቸው. የተወረሰው ክፍል ማንኛውንም ወይም ሁሉንም ዘዴዎች መተግበር ይችላል. ሁሉም የአብስትራክት ዘዴዎች ካልተተገበሩ፣ ያ ክፍል እንዲሁ ረቂቅ ክፍል ይሆናል።