டைப்ஸ்கிரிப்ட்டில் அப்சர்வர் டிசைன் பேட்டர்னை செயல்படுத்துதல்

டைப்ஸ்கிரிப்ட்டில் அப்சர்வர் டிசைன் பேட்டர்னை செயல்படுத்துதல்

டிசைன் பேட்டர்ன் என்பது சாப்ட்வேர் வடிவமைப்பில் அடிக்கடி நிகழும் சிக்கலைத் தீர்க்கும் டெம்ப்ளேட் ஆகும்.





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





நீக்கப்பட்ட யூடியூப் வீடியோவின் பெயரை எப்படி கண்டுபிடிப்பது
அன்றைய வீடியோவை உருவாக்கவும்

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





பார்வையாளர் முறை

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

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



பார்வையாளர் வடிவமைப்பு வடிவத்தில், உங்கள் பாட வகுப்பு மூன்று முறைகளை செயல்படுத்த வேண்டும்:

  • ஒரு இணைக்கவும் முறை. இந்த முறை பாடத்திற்கு ஒரு பார்வையாளரைச் சேர்க்கிறது.
  • பிரிக்கவும் முறை. இந்த முறை ஒரு பார்வையாளரை ஒரு விஷயத்திலிருந்து நீக்குகிறது.
  • அறிவிக்கவும்/புதுப்பிக்கவும் முறை. பாடத்தில் நிலை மாறும்போது இந்த முறை பாடத்தின் பார்வையாளர்களுக்குத் தெரிவிக்கிறது.

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





பொருள் மற்றும் பார்வையாளர் வகுப்புகளை செயல்படுத்துதல்

இந்த முறையைச் செயல்படுத்துவதற்கான முதல் படி, பொருள் மற்றும் பார்வையாளர் வகுப்பிற்கான இடைமுகங்களை உருவாக்குவது, அவை சரியான முறைகளைச் செயல்படுத்துவதை உறுதிசெய்வதாகும்:

// Subject/Publisher Interface 
interface Subject {
attachObserver(observer: Observer): void;
detachObserver(observer: Observer): void;
notifyObserver(): void;
}

// Observer/Subscriber Interface
interface Observer {
update(subject: Subject): void;
}

மேலே உள்ள கோட் பிளாக்கில் உள்ள இடைமுகங்கள் உங்கள் கான்கிரீட் வகுப்புகள் செயல்படுத்த வேண்டிய முறைகளை வரையறுக்கின்றன.





ஒரு கான்கிரீட் பொருள் வகுப்பு

அடுத்த கட்டமாக ஒரு உறுதியான பாட வகுப்பை செயல்படுத்த வேண்டும் பொருள் இடைமுகம்:

// Subject 
class Store implements Subject {}

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

ஆண்ட்ராய்டில் இருந்து எச்டி வீடியோவை ஃபேஸ்புக்கில் பதிவேற்றுவது எப்படி

இந்த வழக்கில், மாநிலம் ஒரு எண், மற்றும் பார்வையாளர்கள் எண்ணிக்கையில் அதிகரிப்புக்கு எதிர்வினையாற்றுவார்கள்:

// Subject state 
private numberOfProducts: number;

அடுத்து, பார்வையாளர்களின் வரிசையைத் தொடங்கவும். இந்த வரிசையானது பார்வையாளர்களை எவ்வாறு கண்காணிப்பது:

// initializing observers 
private observers: Observer[] = [];