Inversion of control
மென்பொருள் பொறியியலில், கட்டுப்பாட்டின் தலைகீழ் (ஐஓசி) என்பது ஒரு வடிவமைப்பு வடிவமாகும், இதில் ஒரு கணினி நிரலின் தனிப்பயனாக்கப்பட்ட பகுதிகள் ஒரு பொதுவான கட்டமைப்பிலிருந்து கட்டுப்பாட்டின் ஓட்டத்தைப் பெறுகின்றன. "தலைகீழ்" என்ற சொல் வரலாற்று ரீதியானதுஃ நடைமுறை நிரலாக்கத்துடன் ஒப்பிடும்போது இந்த வடிவமைப்பு "தலைகீழ்" கட்டுப்பாட்டைக் கொண்ட ஒரு மென்பொருள் கட்டமைப்பு. நடைமுறை நிரலாக்கத்தில், ஒரு நிரலின் தனிப்பயன் குறியீடு மீண்டும் பயன்படுத்தக்கூடிய நூலகங்களை பொதுவான பணிகளை கவனித்துக்கொள்ள அழைக்கிறது, ஆனால் கட்டுப்பாட்டின் தலைகீழ் மாற்றத்துடன், தனிப்பயன் குறியீட்டை அழைக்கும் கட்டமைப்பாகும். GUI சூழல்களின் எழுச்சியிலிருந்து பயன்பாட்டு மேம்பாட்டு கட்டமைப்புகளால் கட்டுப்பாட்டின் தலைகீழ் பரவலாகப் பயன்படுத்தப்படுகிறது மற்றும் GUI சூழல்களிலும் வலை சேவையக பயன்பாட்டு கட்டமைப்புகளிலும் தொடர்ந்து பயன்படுத்தப்படுகிறது. கட்டுப்பாட்டின் தலைகீழ் பயன்பாட்டு புரோகிராமரால் வரையறுக்கப்பட்ட முறைகளால் கட்டமைப்பை விரிவாக்குகிறது. நிகழ்வு-உந்துதல் நிரலாக்கம் பெரும்பாலும் ஐ. ஓ. சி. யைப் பயன்படுத்தி செயல்படுத்தப்படுகிறது, இதனால் தனிப்பயன் குறியீடு நிகழ்வுகளைக் கையாள்வதில் மட்டுமே அக்கறை கொள்ள வேண்டும், அதே நேரத்தில் நிகழ்வு வளையம் மற்றும் நிகழ்வுகள்/செய்திகளை அனுப்புவது கட்டமைப்பால் அல்லது இயக்க நேர சூழலால் கையாளப்படுகிறது. வலை சேவையக பயன்பாட்டு கட்டமைப்புகளில், அனுப்புதல் பொதுவாக ரூட்டிங் என்று அழைக்கப்படுகிறது, மேலும் கையாளுபவர்கள் இறுதிப் புள்ளிகள் என்று அழைக்கப்படலாம். "கட்டுப்பாட்டின் தலைகீழ்" என்ற சொற்றொடர் ஜாவா புரோகிராமர்களின் சமூகத்திலும் தனித்தனியாகப் பயன்படுத்தப்படுகிறது, இது வசந்த கட்டமைப்பு போன்ற ஜாவா கட்டமைப்புகளில் "ஐஓசி கொள்கலன்களுடன்" நிகழும் பொருட்களின் சார்புகளை செலுத்தும் வடிவங்களைக் குறிக்கிறது. இந்த வித்தியாசமான அர்த்தத்தில், "கட்டுப்பாட்டின் தலைகீழ்" என்பது கட்டமைப்பின் கட்டுப்பாட்டு ஓட்டத்தை வழங்குவதற்கான அசல் அர்த்தத்தை விட பயன்பாட்டு பொருள்களால் பயன்படுத்தப்படும் சார்புநிலைகளை செயல்படுத்துவதற்கான கட்டமைப்பின் கட்டுப்பாட்டை வழங்குவதைக் குறிக்கிறது (பயன்பாட்டு குறியீட்டை செயல்படுத்தும் நேரத்தின் மீதான கட்டுப்பாடு எ. கா. அழைப்புகள்). ஒரு எடுத்துக்காட்டாக, பாரம்பரிய நிரலாக்கத்துடன், ஒரு பயன்பாட்டின் முக்கிய செயல்பாடு ஒரு மெனு நூலகத்தில் செயல்பாட்டு அழைப்புகளைச் செய்து, கிடைக்கக்கூடிய கட்டளைகளின் பட்டியலைக் காண்பித்து, ஒன்றைத் தேர்ந்தெடுக்க பயனரைக் கேட்கலாம். நூலகம் இவ்வாறு தேர்ந்தெடுக்கப்பட்ட விருப்பத்தை செயல்பாட்டு அழைப்பின் மதிப்பாகத் திருப்பித் தரும், மேலும் முக்கிய செயல்பாடு தொடர்புடைய கட்டளையை இயக்க இந்த மதிப்பைப் பயன்படுத்துகிறது. இந்த பாணி உரை அடிப்படையிலான இடைமுகங்களில் பொதுவானதாக இருந்தது. எடுத்துக்காட்டாக, ஒரு மின்னஞ்சல் கிளையன்ட் புதிய அஞ்சல்களை ஏற்றுவதற்கும், தற்போதைய அஞ்சல்களுக்கு பதிலளிப்பதற்கும், புதிய அஞ்சல்களை உருவாக்குவதற்கும் கட்டளைகளைக் கொண்ட ஒரு திரையைக் காட்டலாம், மேலும் பயனர் ஒரு கட்டளையைத் தேர்ந்தெடுக்க ஒரு விசையை அழுத்தும் வரை நிரல் செயல்படுத்தல் தடுக்கப்படும். மறுபுறம், கட்டுப்பாட்டை தலைகீழாக மாற்றுவதன் மூலம், சாளர அமைப்புகள், மெனுக்கள், சுட்டியைக் கட்டுப்படுத்துதல் போன்ற பொதுவான நடத்தை மற்றும் வரைகலை கூறுகளை அறிந்த ஒரு மென்பொருள் கட்டமைப்பைப் பயன்படுத்தி நிரல் எழுதப்படும். தனிப்பயன் குறியீடு கட்டமைப்பிற்கான "வெற்றிடங்களை நிரப்புகிறது", அதாவது மெனு உருப்படிகளின் அட்டவணையை வழங்குதல் மற்றும் ஒவ்வொரு உருப்படிக்கும் ஒரு குறியீடு சப்ரூட்டினை பதிவு செய்தல், ஆனால் இது பயனரின் செயல்களைக் கண்காணிக்கும் கட்டமைப்பாகும் மற்றும் ஒரு மெனு உருப்படி தேர்ந்தெடுக்கப்படும்போது சப்ரூட்டினை அழைக்கிறது. அஞ்சல் கிளையன்ட் எடுத்துக்காட்டில், கட்டமைப்பானது விசைப்பலகை மற்றும் சுட்டி உள்ளீடுகள் இரண்டையும் பின்பற்றலாம் மற்றும் பயனரால் அழைக்கப்படும் கட்டளையை இரு வழிகளிலும் அழைக்கலாம், அதே நேரத்தில் நெட்வொர்க் இடைமுகத்தை கண்காணித்து புதிய செய்திகள் வருகின்றனவா என்பதைக் கண்டறிந்து, சில நெட்வொர்க் செயல்பாடு கண்டறியப்படும்போது திரையைப் புதுப்பிக்கலாம். அதே கட்டமைப்பை ஒரு விரிதாள் நிரல் அல்லது உரை எடிட்டருக்கான எலும்புக்கூடாகப் பயன்படுத்தலாம். மாறாக, கட்டமைப்புக்கு வலை உலாவிகள், விரிதாள்கள் அல்லது உரை எடிட்டர்கள் பற்றி எதுவும் தெரியாது; அவற்றின் செயல்பாட்டை செயல்படுத்துவதற்கு தனிப்பயன் குறியீடு தேவைப்படுகிறது. கட்டுப்பாட்டின் தலைகீழ் மறுபயன்பாட்டு குறியீடு மற்றும் சிக்கல்-குறிப்பிட்ட குறியீடு ஒரு பயன்பாட்டில் ஒன்றாக செயல்பட்டாலும் அவை சுயாதீனமாக உருவாக்கப்படுகின்றன என்ற வலுவான அர்த்தத்தைக் கொண்டுள்ளது. கால்பேக்குகள், திட்டமிடுபவர்கள், நிகழ்வு சுழல்கள் மற்றும் வார்ப்புரு முறை ஆகியவை கட்டுப்பாட்டுக் கொள்கையின் தலைகீழ் முறையைப் பின்பற்றும் வடிவமைப்பு வடிவங்களின் எடுத்துக்காட்டுகளாகும், இருப்பினும் இந்த சொல் பொதுவாக பொருள் சார்ந்த நிரலாக்கத்தின் சூழலில் பயன்படுத்தப்படுகிறது. (சார்பு ஊசி என்பது ஜாவா கட்டமைப்புகளால் பிரபலப்படுத்தப்பட்ட "சார்பு முறைகளை செயல்படுத்துவதில் தலைகீழ் கட்டுப்பாடு" என்ற தனி, குறிப்பிட்ட யோசனைக்கு ஒரு எடுத்துக்காட்டு.) கட்டுப்பாட்டின் தலைகீழ் சில நேரங்களில் "ஹாலிவுட் கோட்பாடுஃ எங்களை அழைக்க வேண்டாம், நாங்கள் உங்களை அழைப்போம்" என்று குறிப்பிடப்படுகிறது. கட்டுப்பாட்டின் பின்னணி தலைகீழ் என்பது கணினி அறிவியலில் ஒரு புதிய சொல் அல்ல. மார்ட்டின் ஃபோலர் இந்த சொற்றொடரின் சொற்றொடரை 1988 ஆம் ஆண்டிலிருந்து கண்டுபிடித்தார், ஆனால் இது 1970 களில் மைக்கேல் ஜாக்சன் தனது ஜாக்சன் கட்டமைக்கப்பட்ட நிரலாக்க முறைமையில் விவரித்த நிரல் தலைகீழ் கருத்துடன் நெருக்கமாக தொடர்புடையது. ஒரு கீழ்-மேல் பாகுபடுத்தியை மேல்-கீழ் பாகுபடுத்தியின் தலைகீழாகக் காணலாம்ஃ ஒரு விஷயத்தில், கட்டுப்பாடு பாகுபடுத்தியுடன் உள்ளது, மறுபுறம், அது பெறும் பயன்பாட்டுடன் உள்ளது. இந்த வார்த்தையை மைக்கேல் மாட்ச்சன் ஒரு ஆய்வறிக்கையில் பயன்படுத்தினார் (பயன்பாட்டுக் குறியீட்டை அழைக்கும் கட்டமைப்பின் அசல் அர்த்தத்துடன்), பின்னர் அங்கிருந்து ஸ்டெஃபனோ மஸோச்சியால் எடுக்கப்பட்டு 1999 ஆம் ஆண்டில் செயலிழந்த அப்பாச்சி மென்பொருள் அறக்கட்டளை திட்டமான அவலோனில் அவரால் பிரபலப்படுத்தப்பட்டது, இதில் அது நிறைவேற்றும் ஓட்டத்தைக் கட்டுப்படுத்துவதோடு கூடுதலாக ஒரு குழந்தை பொருளின் சார்பு நிலைகளில் கடந்து செல்லும் ஒரு பெற்றோர் பொருளைக் குறிக்கிறது. இந்த சொற்றொடர் 2004 ஆம் ஆண்டில் ராபர்ட் சி. மார்ட்டின் மற்றும் மார்ட்டின் ஃபோலர் ஆகியோரால் மேலும் பிரபலப்படுத்தப்பட்டது, அவர்களில் பிந்தையவர் இந்த வார்த்தையின் தோற்றத்தை 1980 களில் கண்டறிந்தார். பாரம்பரிய நிரலாக்கத்தில், வணிக தர்க்கத்தின் ஓட்டம் ஒருவருக்கொருவர் நிலையான முறையில் பிணைக்கப்பட்டுள்ள பொருட்களால் தீர்மானிக்கப்படுகிறது. கட்டுப்பாட்டின் தலைகீழ் மாற்றத்துடன், ஓட்டம் நிரல் செயல்பாட்டின் போது கட்டமைக்கப்பட்ட பொருள் வரைபடத்தைப் பொறுத்தது. இத்தகைய மாறும் ஓட்டம் சுருக்கங்கள் மூலம் வரையறுக்கப்பட்ட பொருள் தொடர்புகளால் சாத்தியமாக்கப்படுகிறது. இந்த ரன்-டைம் பிணைப்பு சார்பு ஊசி அல்லது சேவை இருப்பிடம் போன்ற வழிமுறைகளால் அடையப்படுகிறது. ஐ. ஓ. சி. யில், குறியீட்டை தொகுப்பின் போது நிலையான முறையில் இணைக்க முடியும், ஆனால் குறியீட்டில் உள்ள நேரடி குறிப்புக்கு பதிலாக வெளிப்புற உள்ளமைவிலிருந்து அதன் விளக்கத்தைப் படிப்பதன் மூலம் செயல்படுத்த குறியீட்டைக் கண்டறியலாம். சார்பு ஊசியில், ஒரு சார்பு பொருள் அல்லது தொகுதி இயக்க நேரத்தில் தேவைப்படும் பொருளுடன் இணைக்கப்படுகிறது. நிரல் செயல்பாட்டின் போது எந்த குறிப்பிட்ட பொருள் சார்புநிலையை திருப்திப்படுத்தும் என்பதை பொதுவாக நிலையான பகுப்பாய்வைப் பயன்படுத்தி தொகுப்பு நேரத்தில் அறிய முடியாது. இங்கே பொருள் தொடர்புகளின் அடிப்படையில் விவரிக்கப்பட்டாலும், இந்த கொள்கை பொருள் சார்ந்த நிரலாக்கத்தைத் தவிர மற்ற நிரலாக்க முறைகளுக்கும் பொருந்தும். இயங்கும் நிரல் ஒருவருக்கொருவர் பொருட்களை பிணைக்க, பொருள்கள் இணக்கமான இடைமுகங்களைக் கொண்டிருக்க வேண்டும். எடுத்துக்காட்டாக, வகுப்பு A இடைமுகம் I க்கு நடத்தையை ஒப்படைக்கலாம், இது வகுப்பு B ஆல் செயல்படுத்தப்படுகிறது; நிரல் A மற்றும் B ஐ உடனடியாக செயல்படுத்துகிறது, பின்னர் B ஐ A க்குள் செலுத்துகிறது. XDE, 1985 விஷுவல் பேசிக் (கிளாசிக்), 1991 க்கான மெசா நிரலாக்க சூழலைப் பயன்படுத்தவும். எச். டி. எம். எல். டி. ஓ. எம் நிகழ்வு ஸ்பிரிங் ஃபிரேம்வொர்க் ASP.NET கோர் டெம்ப்ளேட் முறை முறை மாதிரி குறியீடு எச். டி. எம். எல். டி. ஓ. எம் நிகழ்வுகள் வலை உலாவிகள் எச். டி. எம். எல். இல் உள்ள டி. ஓ. எம் நிகழ்வுகளுக்கான கட்டுப்பாட்டின் தலைகீழ் மாற்றத்தை செயல்படுத்துகின்றன. பயன்பாட்டு டெவலப்பர் ஒரு அழைப்பைப் பதிவு செய்ய பயன்படுத்துகிறார். <! டாக்டைப் எச். டி. எம். எல்> <எச். டி. எம். எல் லாங் = "என்"> <தலை> <மெட்டா சொற்றொடர் = "யூ. டி. எஃப்-8"> <தலைப்பு> டிஓஎம் நிலை 2 </தலைப்பு> <தலை> <உடல்> <எச்1> டிஓஎம் நிலை 2 நிகழ்வு கையாளுபவர் </எச்1> <பி> <பெரிய> <ஸ்பான் ஐடி = "வெளியீடு"> </ஸ்பான்> </பெரிய> </பி> <ஸ்கிரிப்ட்> வர் பதிவுசெய்யப்பட்ட லிஸ்டனர் = செயல்பாடு () {document.getElementById (வெளியீடு). இன்னர்எச்டிஎம்எல் = "<பெரிய> பதிவுசெய்யப்பட்ட கேட்பவர் அழைக்கப்பட்டார். நீங்கள் பக்கத்தைக் கிளிக் செய்தால், உங்கள் வலை உலாவி நிகழ்வைக் கையாளுபவரை அழைக்கும். </பெரிய> "</ஸ்கிரிப்ட்> </பாடி> </எச். டி. எம். எல்> வலை பயன்பாட்டு கட்டமைப்புகள் ஒரு Asp.NetCore வலை பயன்பாட்டிற்கான இந்த எடுத்துக்காட்டு குறியீடு ஒரு வலை பயன்பாட்டு ஹோஸ்டை உருவாக்குகிறது, ஒரு இறுதிப் புள்ளியைப் பதிவுசெய்கிறது, பின்னர் கட்டமைப்பிற்கு கட்டுப்பாட்டை அனுப்புகிறதுஃ வர் பில்டர் = WebApplication.CreateBuilder (ஆர்ஜிஎஸ்); வர் பயன்பாடு = builder.Build (); app.MapGet (",/") =" ஹலோ வேர்ல்ட்! "); app.Run (); மேலும் காண்க சுருக்கம் அடுக்கு ஆர்க்கிடைப் முறை ஒத்திசைவற்ற I/O அம்சம் சார்ந்த நிரலாக்க அழைப்பு (கணினி அறிவியல்) மூடல் (கணினி அறிவியல்) தொடர்ச்சி பிரதிநிதி (சி. எல். ஐ) சார்பு தலைகீழ் கொள்கை ஓட்டம் அடிப்படையிலான நிரலாக்கம் உட்புகுத்தல் அழைப்பு இடைமறிப்பு கையாளுபவர் செய்தி கடந்து செல்வது மோனாட் (செயல்பாட்டு நிரலாக்கம்) பார்வையாளர் முறை வெளியீடு/சந்தா சேவை இருப்பிட முறை சமிக்ஞை (கணினி) மென்பொருள் கட்டமைப்பு மூலோபாய முறை பயனர் வெளியேறும் பார்வையாளர் முறை எக்ஸ். எஸ். எல். டி குறிப்புகள் வெளிப்புற இணைப்புகள் கட்டுப்பாட்டு விளக்கம் மற்றும் செயல்படுத்தல் எடுத்துக்காட்டின் தலைகீழ் கட்டுப்பாடு மென்பொருள் கட்டமைப்பு கட்டிடக்கலை முறை (கணினி அறிவியல்) ஜாவா (நிரலாக்க மொழி) நிரலாக்க கொள்கைகள் கூறு அடிப்படையிலான மென்பொருள் பொறியியல் மென்பொருள் வடிவமைப்பு வடிவங்கள்