టైప్‌స్క్రిప్ట్‌లో అబ్జర్వర్ డిజైన్ నమూనాను అమలు చేయడం

టైప్‌స్క్రిప్ట్‌లో అబ్జర్వర్ డిజైన్ నమూనాను అమలు చేయడం

డిజైన్ నమూనా అనేది సాఫ్ట్‌వేర్ రూపకల్పనలో సాధారణంగా పునరావృతమయ్యే సమస్యను పరిష్కరించే టెంప్లేట్.





పబ్లిష్-సబ్‌స్క్రైబ్ ప్యాటర్న్ అని కూడా పిలువబడే పరిశీలకుల నమూనా ప్రవర్తనా నమూనా. బహుళ వస్తువులు లేదా సబ్‌స్క్రైబర్‌లు వారు గమనిస్తున్న వస్తువులో ప్రచురించబడిన ఏదైనా ఈవెంట్ గురించి తెలియజేయడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది.





రోజు యొక్క వీడియోను తయారు చేయండి

టైప్‌స్క్రిప్ట్‌లో అబ్జర్వర్ డిజైన్ నమూనాను ఎలా అమలు చేయాలో ఇక్కడ మీరు నేర్చుకుంటారు.





నెట్‌వర్క్‌లో బ్యాండ్‌విడ్త్‌ని ఉపయోగిస్తున్నది ఎలా చెప్పాలి

ది అబ్జర్వర్ ప్యాటర్న్

పబ్లిషర్ మరియు దాని సబ్‌స్క్రైబర్‌ల మధ్య ఒకరి నుండి అనేక సంబంధాన్ని నిర్వచించడం ద్వారా పరిశీలకుల నమూనా పని చేస్తుంది. పబ్లిషర్‌లో ఈవెంట్ సంభవించినప్పుడు, అది ఆ ఈవెంట్‌కి సంబంధించిన సబ్‌స్క్రైబర్‌లందరికీ తెలియజేస్తుంది. ఈ నమూనా యొక్క ఒక విస్తృత ఉదాహరణ జావాస్క్రిప్ట్ ఈవెంట్ శ్రోతలు .

సందర్భం కోసం, మీరు మీ స్టోర్‌లోని ఉత్పత్తుల సంఖ్యను ట్రాక్ చేసే ఇన్వెంటరీ ట్రాకర్‌ను రూపొందిస్తున్నారని అనుకోండి. ఈ సందర్భంలో, మీ స్టోర్ సబ్జెక్ట్/పబ్లిషర్, మరియు మీ ఇన్వెంటరీ అనేది పరిశీలకుడు/చందాదారు. ఈ పరిస్థితిలో అబ్జర్వర్ డిజైన్ నమూనాను ఉపయోగించడం సరైనది.



పరిశీలకుడి డిజైన్ నమూనాలో, మీ సబ్జెక్ట్ క్లాస్ తప్పనిసరిగా మూడు పద్ధతులను అమలు చేయాలి:

  • ఒక అటాచ్ చేయండి పద్ధతి. ఈ పద్ధతి విషయానికి పరిశీలకుడిని జోడిస్తుంది.
  • విడదీయండి పద్ధతి. ఈ పద్ధతి ఒక విషయం నుండి పరిశీలకుడిని తొలగిస్తుంది.
  • తెలియజేయండి/నవీకరించండి పద్ధతి. సబ్జెక్ట్‌లో స్థితి మారినప్పుడు ఈ పద్ధతి సబ్జెక్ట్ పరిశీలకులకు తెలియజేస్తుంది.

మీ పరిశీలకుల తరగతి తప్పనిసరిగా ఒక పద్ధతిని అమలు చేయాలి, ది నవీకరణ పద్ధతి. ఈ పద్ధతి దాని విషయం యొక్క స్థితిలో మార్పు వచ్చినప్పుడు ప్రతిస్పందిస్తుంది.





amazon fire hd 10 google play

సబ్జెక్ట్ మరియు అబ్జర్వర్ క్లాసులను అమలు చేయడం

ఈ నమూనాను అమలు చేయడానికి మొదటి దశ సబ్జెక్ట్ మరియు అబ్జర్వర్ క్లాస్ కోసం ఇంటర్‌ఫేస్‌లను సృష్టించడం, అవి సరైన పద్ధతులను అమలు చేస్తున్నాయని నిర్ధారించుకోవడం:

// 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[] = [];