நேரடி சார்புகளை செய்தியிடல் மூலம் மாற்றுதல்

சில நேரங்களில் ஒரு தொகுதியானது, அதில் சில நிகழ்வுகள்/மாற்றங்கள் நிகழ்ந்துள்ளன என்பதை மற்றவர்களுக்குத் தெரிவிக்க வேண்டும், மேலும் இந்தத் தகவலுக்குப் பிறகு என்ன நடந்தாலும் பரவாயில்லை.

இந்த வழக்கில், தொகுதிகள் "ஒருவருக்கொருவர் பற்றி தெரிந்து கொள்ள" தேவையில்லை, அதாவது, நேரடி இணைப்புகள் மற்றும் நேரடியாக தொடர்புகொள்வது, ஆனால் செய்திகளை (செய்திகள்) அல்லது நிகழ்வுகளை (நிகழ்வுகள்) பரிமாறிக்கொள்ள இது போதுமானது.

சில நேரங்களில் செய்தி அனுப்புதல் மூலம் தொகுதி தொடர்பு நேரடி சார்புநிலையை விட மிகவும் பலவீனமாக உள்ளது. உண்மையில், முறைகள் அழைக்கப்படாததால், வகுப்புகள் பற்றி எந்த தகவலும் இல்லை. ஆனால் இது ஒரு மாயையைத் தவிர வேறில்லை.

முறை பெயர்களுக்குப் பதிலாக, தர்க்கம் செய்தி வகைகள், அவற்றின் அளவுருக்கள் மற்றும் கடத்தப்பட்ட தரவு ஆகியவற்றுடன் இணைக்கப்படத் தொடங்குகிறது. அத்தகைய தொகுதிகளின் இணைப்பு ஸ்மியர் செய்யப்படுகிறது.

இது இப்படி இருந்தது: நாங்கள் முறைகளை அழைக்கிறோம் - இணைப்பு உள்ளது, நாங்கள் முறைகளை அழைப்பதில்லை - இணைப்பு இல்லை. தொகுதி A அதன் செய்திகளில் சற்று வித்தியாசமான தரவை அனுப்பத் தொடங்கியது என்று இப்போது கற்பனை செய்து பாருங்கள். அதே நேரத்தில், இந்த செய்திகளைச் சார்ந்த அனைத்து தொகுதிகளும் சரியாக வேலை செய்யாது.

முன்னதாக, ஒரு புதிய பயனரைச் சேர்க்கும்போது, ​​​​அங்கீகார தொகுதி USER_ADDED என்ற செய்தியை அனுப்பியது, மேலும் புதுப்பித்தலுக்குப் பிறகு, பதிவு செய்ய முயற்சிக்கும்போது இந்த செய்தியை அனுப்பத் தொடங்கியது, மேலும் வெற்றிகரமான பதிவைக் குறிக்கவும் அல்லது அளவுருக்களில் இல்லை என்றும் வைத்துக்கொள்வோம்.

எனவே, செய்தி பொறிமுறையை மிகவும் திறமையாக செயல்படுத்துவது மிகவும் முக்கியம். இதற்கு பல்வேறு வார்ப்புருக்கள் உள்ளன.

பார்வையாளர். ஒன்று முதல் பல சார்பு நிலையில் இது பயன்படுத்தப்படுகிறது, பல தொகுதிகள் ஒன்றின் நிலையைச் சார்ந்திருக்கும் போது - முக்கியமானது. இது அஞ்சல் பொறிமுறையைப் பயன்படுத்துகிறது, அதாவது பிரதான தொகுதி அதன் அனைத்து சந்தாதாரர்களுக்கும் ஒரே மாதிரியான செய்திகளை அனுப்புகிறது, மேலும் இந்த தகவலில் ஆர்வமுள்ள தொகுதிகள் "சந்தாதாரர்" இடைமுகத்தை செயல்படுத்தி அஞ்சல் பட்டியலில் குழுசேர்கின்றன.

இந்த அணுகுமுறை பயனர் இடைமுகம் கொண்ட கணினிகளில் பரவலாகப் பயன்படுத்தப்படுகிறது, இது ஏதாவது மாறிவிட்டது மற்றும் புதுப்பிக்கப்பட வேண்டும் என்று அதனுடன் தொடர்புடைய இடைமுகங்களுக்குத் தெரிவிக்கும் போது, ​​பயன்பாட்டின் மையமானது (மாடல்) சுதந்திரமாக இருக்க அனுமதிக்கிறது.

இங்கே செய்தி வடிவம் இயக்க முறைமை மட்டத்தில் தரப்படுத்தப்படுகிறது, அதன் டெவலப்பர்கள் பின்தங்கிய இணக்கத்தன்மை மற்றும் நல்ல ஆவணங்களை கவனித்துக் கொள்ள வேண்டும்.

செய்திகளை விநியோகிப்பதன் மூலம் தொடர்பு கொள்ளும் அமைப்பு கூடுதல் "போனஸ்" - "வெளியிடப்பட்ட" (அதாவது அனுப்பப்பட்ட) செய்திகளுக்கு "சந்தாதாரர்களின்" விருப்ப இருப்பு. இது போன்ற நன்கு வடிவமைக்கப்பட்ட அமைப்பு தொகுதிகளை எந்த நேரத்திலும் சேர்க்க/அகற்ற அனுமதிக்கிறது.

செய்தி அனுப்பும் பேருந்து

நீங்கள் செய்திகளின் பரிமாற்றத்தை ஒழுங்கமைக்கலாம் மற்றும் இதற்கு வேறு வழியில் மத்தியஸ்த வடிவத்தைப் பயன்படுத்தலாம் .

தொகுதிகளுக்கு இடையே பல-பல சார்பு இருக்கும்போது இது பயன்படுத்தப்படுகிறது. மத்தியஸ்தர் தொகுதிகளுக்கு இடையேயான தகவல்தொடர்புகளில் ஒரு இடைத்தரகராக செயல்படுகிறார், ஒரு தகவல்தொடர்பு மையமாக செயல்படுகிறார் மற்றும் தொகுதிகள் ஒருவருக்கொருவர் வெளிப்படையாகக் குறிப்பிடுவதற்கான தேவையை நீக்குகிறது.

இதன் விளைவாக, தொகுதிகள் ஒன்றோடொன்று தொடர்புகொள்வது ("அனைவருடனும்") ஒரு இடைத்தரகருடன் ("அனைவருடனும் ஒன்று") மட்டுமே தொகுதிகளின் தொடர்புகளால் மாற்றப்படுகிறது. மத்தியஸ்தர் பல தொகுதிகளுக்கு இடையிலான தொடர்புகளை உள்ளடக்குவதாகக் கூறப்படுகிறது.

செய்தி அனுப்பும் பேருந்து

இது ஸ்மார்ட் இடைத்தரகர் என்று அழைக்கப்படுகிறது . டெவலப்பர்கள் பெரும்பாலும் தங்கள் ஊன்றுகோல்களைச் சேர்க்கத் தொடங்குகிறார்கள், இது சில செய்திகளைப் பெறுவதை இயக்க / முடக்குவதன் மூலம் தனிப்பட்ட தொகுதிகளின் நடத்தையை பாதிக்கிறது.

ஒரு பொதுவான நிஜ வாழ்க்கை உதாரணம் விமான நிலைய போக்குவரத்து கட்டுப்பாடு. விமானத்திலிருந்து வரும் அனைத்து செய்திகளும் விமானங்களுக்கு இடையே நேரடியாக அனுப்பப்படுவதற்குப் பதிலாக கட்டுப்பாட்டுக் கோபுரத்திற்குச் செல்லும். எந்த விமானங்கள் புறப்படலாம் அல்லது தரையிறங்கலாம் என்பது பற்றிய முடிவுகளை ஏற்கனவே கட்டுப்படுத்தி எடுக்கிறது, மேலும், விமானங்களுக்கு செய்திகளை அனுப்புகிறது.

முக்கியமான! தொகுதிகள் ஒருவருக்கொருவர் எளிய செய்திகளை மட்டுமல்ல, கட்டளை பொருட்களையும் அனுப்ப முடியும். அத்தகைய தொடர்பு கட்டளை டெம்ப்ளேட்டால் விவரிக்கப்படுகிறது. ஒரு குறிப்பிட்ட செயலை ஒரு தனி பொருளாகச் செய்வதற்கான கோரிக்கையை இணைப்பதே இதன் முக்கிய அம்சமாகும்.

உண்மையில், இந்த ஆப்ஜெக்டில் ஒரு ஒற்றை execute() முறை உள்ளது, இது இந்த செயலை மற்ற தொகுதிக்கூறுகளுக்கு ஒரு அளவுருவாக அனுப்ப அனுமதிக்கிறது மற்றும் பொதுவாக கட்டளை பொருளின் மூலம் எந்த செயல்பாடுகளையும் சாதாரண பொருள்களில் செய்ய முடியும்.

டிமீட்டர் சட்டம்

டிமீட்டரின் சட்டம் மறைமுக சார்புகளைப் பயன்படுத்துவதைத் தடைசெய்கிறது: "ஆப்ஜெக்ட் A ஆப்ஜெக்ட் C ஐ நேரடியாக அணுக முடியாது என்றால், ஆப்ஜெக்ட் A ஆப்ஜெக்ட் B க்கும், பொருள் B க்கு பொருள் C க்கும் அணுகல் இருந்தால்."

இதன் பொருள் குறியீட்டில் உள்ள அனைத்து சார்புகளும் "வெளிப்படையாக" இருக்க வேண்டும் - வகுப்புகள் / தொகுதிகள் தங்கள் வேலையில் "அவற்றின் சார்புகளை" மட்டுமே பயன்படுத்த முடியும் மற்றும் அவற்றின் மூலம் மற்றவர்களுக்கு ஏறக்கூடாது. ஒரு நல்ல உதாரணம் மூன்று அடுக்கு கட்டிடக்கலை. இடைமுக அடுக்கு லாஜிக் லேயருடன் வேலை செய்ய வேண்டும், ஆனால் தரவுத்தள அடுக்குடன் நேரடியாக தொடர்பு கொள்ளக்கூடாது.

சுருக்கமாக, இந்த கொள்கையும் இந்த வழியில் வடிவமைக்கப்பட்டுள்ளது: "உடனடி நண்பர்களுடன் மட்டுமே தொடர்பு கொள்ளுங்கள், நண்பர்களின் நண்பர்களுடன் அல்ல." இது குறியீட்டின் குறைவான ஒத்திசைவையும், அதன் வடிவமைப்பின் அதிக தெரிவுநிலை மற்றும் வெளிப்படைத்தன்மையையும் அடைகிறது.

டிமீட்டர் சட்டம் ஏற்கனவே குறிப்பிட்டுள்ள "குறைந்தபட்ச அறிவின் கொள்கையை" செயல்படுத்துகிறது, இது தளர்வான இணைப்பின் அடிப்படையாகும் மற்றும் ஒரு பொருள் / தொகுதி மற்ற பொருள்கள் / தொகுதிகளின் கட்டமைப்பு மற்றும் பண்புகள் பற்றி முடிந்தவரை சில விவரங்களை அறிந்திருக்க வேண்டும். அதன் சொந்த கூறுகள் உட்பட பொதுவாக எதையும் .

வாழ்க்கையில் இருந்து ஒரு ஒப்புமை: நீங்கள் நாய் ஓட விரும்பினால், அதன் பாதங்களுக்கு கட்டளையிடுவது முட்டாள்தனம், நாய்க்கு கட்டளை கொடுப்பது நல்லது, அவள் தன் பாதங்களை தானே சமாளிக்கும்.

பரம்பரைக்கு பதிலாக கலவை

இது மிகவும் பெரிய மற்றும் சுவாரஸ்யமான தலைப்பு மற்றும் இது குறைந்தபட்சம் ஒரு தனி விரிவுரைக்கு தகுதியானது. ஒருமித்த கருத்து எட்டப்படும் வரை இணையத்தில் இந்த தலைப்பில் நிறைய பிரதிகள் உடைக்கப்பட்டன - நாங்கள் பரம்பரை குறைந்தபட்சம், கலவை - அதிகபட்சமாக பயன்படுத்துகிறோம்.

விஷயம் என்னவென்றால், பரம்பரை உண்மையில் வகுப்புகளுக்கு இடையே வலுவான தொடர்பை வழங்குகிறது, எனவே அது தவிர்க்கப்பட வேண்டும். ஹெர்ப் சுட்டரின் " பரம்பரையை விட கலவையை விரும்பு " என்ற கட்டுரையில் இந்த தலைப்பு நன்றாக உள்ளது.

நீங்கள் வடிவமைப்பு வடிவங்களைக் கற்கத் தொடங்கும்போது, ​​ஒரு பொருளின் உருவாக்கம் அல்லது அதன் உள் கட்டமைப்பை நிர்வகிக்கும் முழு வடிவங்களையும் நீங்கள் காண்பீர்கள். இந்த சூழலில், கேம்களில் இருந்து வந்த பிரதிநிதி/பிரதிநிதி முறை மற்றும் கூறு முறை ஆகியவற்றில் கவனம் செலுத்துமாறு நான் ஆலோசனை கூற முடியும் .

வடிவங்களைப் பற்றி சிறிது நேரம் கழித்து பேசுவோம்.