Call super
கால் சூப்பர் என்பது சில பொருள் சார்ந்த நிரலாக்க மொழிகளின் குறியீடு வாசனை அல்லது எதிர்ப்பு வடிவமாகும். கால் சூப்பர் என்பது ஒரு வடிவமைப்பு வடிவமாகும், இதில் ஒரு குறிப்பிட்ட வகுப்பு ஒரு பெறப்பட்ட துணைப்பிரிவில், பயனர் ஒரு முறையை மீற வேண்டும் மற்றும் ஒரு குறிப்பிட்ட கட்டத்தில் மீறப்பட்ட செயல்பாட்டை மீண்டும் அழைக்க வேண்டும் என்று நிபந்தனை விதிக்கிறது. மீறப்பட்ட முறை வேண்டுமென்றே முழுமையடையாமல் இருக்கலாம், மேலும் அதன் செயல்பாட்டை பரிந்துரைக்கப்பட்ட முறையில் அதிகரிக்க மீறப்பட்ட முறையை நம்பியிருக்கலாம். இருப்பினும், இந்த அழைப்பில் பரிந்துரைக்கப்பட்ட அனைத்து நிபந்தனைகளையும் மொழியால் செயல்படுத்த முடியாமல் போகலாம் என்ற உண்மையே இதை ஒரு வடிவத்திற்கு எதிரானதாக ஆக்குகிறது. பொருள் சார்ந்த நிரலாக்கத்தில், பயனர்கள் துணைப்பிரிவுகளில் ஒரு சூப்பர் கிளாஸின் பண்புகள் மற்றும் நடத்தையைப் பெறலாம். ஒரு துணைப்பிரிவு அதன் சூப்பர் கிளாஸின் முறைகளை மீறலாம், சூப்பர் கிளாஸின் செயல்பாட்டிற்கான முறையை அதன் சொந்த செயல்பாட்டிற்கு மாற்றாக மாற்றலாம். சில நேரங்களில் ஓவர் ரைடிங் முறை சூப்பர் கிளாஸில் தொடர்புடைய செயல்பாட்டை முழுமையாக மாற்றும், மற்ற சந்தர்ப்பங்களில் சூப்பர் கிளாஸின் முறை இன்னும் ஓவர் ரைடிங் முறையிலிருந்து அழைக்கப்பட வேண்டும். எனவே, பெரும்பாலான நிரலாக்க மொழிகளுக்கு ஒரு மேல்நிலை முறை செயல்படுத்தப்படுவதற்கு சூப்பர் கிளாஸில் மேல்நிலை முறையை வெளிப்படையாக அழைக்க வேண்டும். அழைப்பு சூப்பர் ஆன்டி-பேட்டர்ன் ஒரு குறிப்பிட்ட வகுப்பிலிருந்து ஒரு துணைப்பிரிவைப் பெற ஒரு இடைமுகம் அல்லது கட்டமைப்பைப் பயன்படுத்துபவர்களை நம்பியுள்ளது, ஒரு குறிப்பிட்ட முறையை மீறுகிறது மற்றும் மீறப்பட்ட முறையை மீறப்பட்ட முறையிலிருந்து அசல் முறையை அழைக்க வேண்டும்ஃ இது பெரும்பாலும் தேவைப்படுகிறது, ஏனெனில் சூப்பர் கிளாஸ் சரியாக வேலை செய்ய வகுப்பு அல்லது கட்டமைப்பிற்கான சில அமைப்பு பணிகளைச் செய்ய வேண்டும், அல்லது சூப்பர் கிளாஸின் முக்கிய பணி (இந்த முறையால் நிகழ்த்தப்படுகிறது) துணைப்பிரிவால் மட்டுமே அதிகரிக்கப்படுகிறது. எதிர் வடிவம் என்பது பெற்றோரை அழைப்பதாகும். உண்மையான குறியீட்டில் பல எடுத்துக்காட்டுகள் உள்ளன, அங்கு துணைப்பிரிவில் உள்ள முறை இன்னும் சூப்பர் கிளாஸின் செயல்பாட்டை விரும்பலாம், பொதுவாக இது பெற்றோர் செயல்பாட்டை மட்டுமே அதிகரிக்கிறது. செயல்பாட்டை முழுமையாக மாற்றியமைத்தாலும் அது இன்னும் பெற்றோர் வகுப்பை அழைக்க வேண்டியிருந்தால், எதிர்ப்பு முறை உள்ளது. இந்த சிக்கல்களைத் தீர்ப்பதற்கான ஒரு சிறந்த அணுகுமுறை டெம்ப்ளேட் முறை வடிவத்தைப் பயன்படுத்துவதாகும், அங்கு சூப்பர் கிளாஸ் முற்றிலும் சுருக்கமான முறையை உள்ளடக்கியது, இது துணைப்பிரிவுகளால் செயல்படுத்தப்பட வேண்டும் மற்றும் அசல் முறையை அந்த முறையை அழைக்க வேண்டும்ஃ மொழி மாறுபாடு நிரல்களில் இந்த எதிர்ப்பு வடிவத்தின் தோற்றம் பொதுவாக சில நிரலாக்க மொழிகள் ஒரு சூப்பர் முறை பெறப்பட்ட வகுப்பிலிருந்து அழைக்கப்படுவதை ஒப்பந்த ரீதியாக உறுதிப்படுத்த ஒரு அம்சத்தை வழங்குவதால் ஆகும். இந்த அம்சத்தைக் கொண்ட ஒரு மொழி, மிகவும் தீவிரமான முறையில், பீட்டா ஆகும். இந்த அம்சம் ஜாவா மற்றும் சி + + இல் ஒரு வரையறுக்கப்பட்ட வழியில் காணப்படுகிறது, அங்கு ஒரு குழந்தை வகுப்பு கட்டமைப்பாளர் எப்போதும் பெற்றோர் வகுப்பு கட்டமைப்பாளரை அழைக்கிறார். காமன் லிஸ்ப் (குறிப்பாக காமன் லிஸ்ப் ஆப்ஜெக்ட் சிஸ்டம்) போன்ற முறைகளுக்கு முன்னும் பின்னும் ஆதரிக்கும் மொழிகள், இந்த எதிர்ப்பு வடிவத்தைத் தவிர்க்க வேறு வழியை வழங்குகின்றன. துணை வகுப்பின் புரோகிராமர், சூப்பர் கிளாஸின் முறையை மீறுவதற்குப் பதிலாக, சூப்பர் கிளாஸின் முறைக்கு முன்னும் பின்னும் செயல்படுத்தப்படும் கூடுதல் முறையை வழங்க முடியும். மேலும், சூப்பர் கிளாஸின் புரோகிராமர் துணை கிளாஸின் செயல்களுக்கு கூடுதலாக செயல்படுத்தப்படுவதற்கு உத்தரவாதம் அளிக்கப்பட்ட முறைகளுக்கு முன்னும் பின்னும் சுற்றியுள்ள முறைகளையும் குறிப்பிடலாம். எடுத்துக்காட்டாக, ஒரு வீடியோ வாடகை கடையின் சரக்கு பற்றிய அறிக்கையை உருவாக்க ஒரு வகுப்பு உள்ளது என்று வைத்துக்கொள்வோம். ஒவ்வொரு குறிப்பிட்ட கடையிலும் தற்போது கிடைக்கும் வீடியோக்களை அட்டவணைப்படுத்துவதற்கான வெவ்வேறு வழிகள் உள்ளன, ஆனால் இறுதி அறிக்கையை உருவாக்குவதற்கான வழிமுறை அனைத்து கடைகளுக்கும் ஒரே மாதிரியாக இருக்கும். அழைப்பு சூப்பர் ஆன்டி-பேட்டர்னை பயன்படுத்தும் ஒரு கட்டமைப்பானது பின்வரும் சுருக்க வகுப்பை வழங்கலாம் (சி #இல்): சுருக்க வகுப்பு ரிப்போர்ட் ஜெனரேட்டர் {பொது மெய்நிகர் ரிப்போர்ட் கிரியேட் ரிப்போர்ட் () {// ஜெனரேட் தி ஜெனரல் ரிப்போர்ட் ஆப்ஜெக்ட்//. ரிட்டர்ன் நியூ ரிப்போர்ட் (.);} வகுப்பின் ஒரு பயனர் இது போன்ற ஒரு துணை வகுப்பை செயல்படுத்துவார் என்று எதிர்பார்க்கப்படுகிறதுஃ வகுப்பு கான்கிரீட் ரிப்போர்ட் ஜெனரேட்டர்ஃ ரிப்போர்ட் ஜெனரேட்டர் {பொது மேல்நிலை அறிக்கை உருவாக்க அறிக்கையை உருவாக்கவும் ()// இந்த வகுப்பின் வடிவமைப்பிற்கு பெற்றோர் உருவாக்க அறிக்கையை () செயல்பாடு மேல்நிலை செயல்பாட்டின்// முடிவில் அழைக்கப்பட வேண்டும். ஆனால் இந்த வரியை எளிதில் விட்டுவிடலாம், அல்லது// திரும்பிய அறிக்கையை அழைப்புக்குப் பிறகு மேலும் மாற்றியமைக்கலாம், இது வகுப்பு வடிவமைப்பு// மற்றும் நிறுவன அளவிலான அறிக்கை வடிவமைப்பை மீறுகிறது. திரும்பும் base.CreateReport ();} ஒரு விரும்பத்தக்க இடைமுகம் இதுபோன்று தெரிகிறதுஃ சுருக்க வகுப்பு அறிக்கையை உருவாக்குபவர் {பொது அறிக்கையை உருவாக்குபவர் () {அட்டவணை ();// பொது அறிக்கையை உருவாக்குபவர்//. புதிய அறிக்கையைத் திருப்பித் தருவர் (.);} பாதுகாக்கப்பட்ட சுருக்கத்தை வெற்றிட அட்டவணை ();} ஒரு செயல்படுத்தல் இந்த வகுப்பை பின்வருமாறு மீறுகிறதுஃ வகுப்பு கான்கிரீட் அறிக்கையை உருவாக்குபவர்ஃ அறிக்கையை உருவாக்குபவர் {பாதுகாக்கப்பட்ட வெற்றிட அட்டவணையை மீறுபவர் () {// கடையில் குறிப்பிட்ட முறையில் அட்டவணை தரவை அட்டவணைப்படுத்துபவர்//.