ఇటరేటర్

ఇటరేటర్ అనేది ప్రవర్తనా రూపకల్పన నమూనా. సమగ్ర వస్తువు యొక్క ప్రతి వర్ణనలను ఉపయోగించకుండా మొత్తం వస్తువు యొక్క మూలకాలకు సీక్వెన్షియల్ యాక్సెస్‌ను అనుమతించే వస్తువును సూచిస్తుంది.

ఇటరేటర్

ఉదాహరణకు, ట్రీ, లింక్డ్ లిస్ట్, హాష్ టేబుల్ మరియు అర్రే వంటి ఎలిమెంట్‌లను ఇటరేటర్ ఆబ్జెక్ట్‌ని ఉపయోగించి ట్రావర్స్ చేయవచ్చు (మరియు సవరించబడింది).

మూలకాల ద్వారా పునరావృతం చేయడం అనేది ఇటరేటర్ ఆబ్జెక్ట్ ద్వారా చేయబడుతుంది, సేకరణ ద్వారా కాదు. ఇది సేకరణ యొక్క ఇంటర్‌ఫేస్ మరియు అమలును సులభతరం చేస్తుంది మరియు ఆందోళనల యొక్క మరింత తార్కిక విభజనను ప్రోత్సహిస్తుంది.

పూర్తిగా అమలు చేయబడిన ఇటరేటర్ యొక్క లక్షణం ఏమిటంటే, ఇటరేటర్‌ను ఉపయోగించే కోడ్‌కు పునరావృతమయ్యే మొత్తం రకం గురించి ఏమీ తెలియకపోవచ్చు.

ఈ విధానం చాలా తరచుగా ఉపయోగించబడుతుంది. ఉదాహరణకు, మీరు డేటాబేస్‌కు SQL ప్రశ్నను పంపుతారు మరియు ప్రతిస్పందనగా అది మీకు ఇటరేటర్‌ను అందిస్తుంది (SQL పరంగా, దీనిని సాధారణంగా కర్సర్ అంటారు). మరియు ఫలితంగా వచ్చే ఇటరేటర్ సహాయంతో, మీరు SQL ప్రతిస్పందన నుండి వరుసలను ఒక్కొక్కటిగా తీసుకోవచ్చు.

ఆదేశం

కమాండ్ అనేది ఒక చర్యను సూచించే ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్‌లో ఉపయోగించే ప్రవర్తనా రూపకల్పన నమూనా. కమాండ్ ఆబ్జెక్ట్ చర్యను మరియు దాని పారామితులను కలిగి ఉంటుంది.

ఆదేశం

పద్ధతిని కాల్ చేయడానికి, మీకు సాధారణంగా ఇది అవసరం:

  • వస్తువు సూచన
  • పద్ధతి పేరు (పద్ధతి సూచన)
  • పద్ధతి పరామితి విలువలు
  • ఉపయోగించిన వస్తువులను కలిగి ఉన్న సందర్భానికి సూచన

ఈ డేటా అంతా ఒక వస్తువులో ప్యాక్ చేయబడాలి - కమాండ్ ( కమాండ్ ).

కానీ అది అన్ని కాదు: అన్ని తరువాత, ఎవరైనా ఆదేశాన్ని అమలు చేయాలి. కాబట్టి ఈ నమూనా మరో నాలుగు ఎంటిటీలను కలిగి ఉంటుంది: కమాండ్‌లు ( కమాండ్ ), కమాండ్ రిసీవర్ ( రిసీవర్ ), కమాండ్ కాలర్ ( ఇన్‌వోకర్ ) మరియు క్లయింట్ ( క్లయింట్ ).

ఒక వస్తువుఆదేశంరిసీవర్ గురించి తెలుసు మరియు రిసీవర్ పద్ధతికి కాల్ చేస్తుంది. రిసీవర్ పరామితి విలువలు కమాండ్‌లో నిల్వ చేయబడతాయి. కాలర్ (ఇన్‌వోకర్) ఆదేశాన్ని ఎలా అమలు చేయాలో తెలుసు మరియు బహుశా అమలు చేయబడిన ఆదేశాలను ట్రాక్ చేస్తుంది. కాలర్ (ఇన్‌వోకర్)కి నిర్దిష్ట కమాండ్ గురించి ఏమీ తెలియదు, దానికి ఇంటర్‌ఫేస్ గురించి మాత్రమే తెలుసు.

రెండు వస్తువులు (కాలింగ్ ఆబ్జెక్ట్ మరియు అనేక కమాండ్ ఆబ్జెక్ట్‌లు) క్లయింట్ ఆబ్జెక్ట్‌కు చెందినవి. క్లయింట్ ఏ ఆదేశాలను ఎప్పుడు అమలు చేయాలో నిర్ణయిస్తారు. ఆదేశాన్ని అమలు చేయడానికి, ఇది కమాండ్ ఆబ్జెక్ట్‌ను కాలర్‌కు (ఇన్‌వోకర్) పంపుతుంది.

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

కాలర్ ఆబ్జెక్ట్ (ఇన్‌వోకర్)ని ఉపయోగించడం వలన క్లయింట్ ఈ అకౌంటింగ్ మోడల్ గురించి తెలుసుకోవలసిన అవసరం లేకుండా అమలు చేయబడిన ఆదేశాల రికార్డును ఉంచడానికి మిమ్మల్ని అనుమతిస్తుంది (అటువంటి అకౌంటింగ్ ఉపయోగకరంగా ఉంటుంది, ఉదాహరణకు, ఆదేశాన్ని అన్డు మరియు రీడూ అమలు చేయడానికి).

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

పరిశీలకుడు

పరిశీలకుడు ఒక ప్రవర్తనా రూపకల్పన నమూనా. ఈ తరగతికి చెందిన వస్తువు ఇతర వస్తువుల స్థితిలో మార్పుల గురించి నోటిఫికేషన్‌లను స్వీకరించడానికి మరియు వాటిని గమనించడానికి అనుమతించే తరగతి యంత్రాంగాన్ని అమలు చేస్తుంది.

పరిశీలకుడు

ఇతర తరగతులు సబ్‌స్క్రైబ్ చేసే తరగతులను సబ్జెక్ట్‌లు అని , సబ్‌స్క్రయిబ్ చేసే క్లాస్‌లను అబ్జర్వర్స్ అని అంటారు .

అబ్జర్వర్ నమూనాను అమలు చేస్తున్నప్పుడు, కింది తరగతులు సాధారణంగా ఉపయోగించబడతాయి:

  • పరిశీలించదగినది - పరిశీలకులను జోడించడం, తొలగించడం మరియు తెలియజేయడం కోసం పద్ధతులను నిర్వచించే ఇంటర్‌ఫేస్;
  • పరిశీలకుడు - పరిశీలకుడు నోటిఫికేషన్‌ను స్వీకరించే ఇంటర్‌ఫేస్;
  • ConcreteObservable అనేది పరిశీలించదగిన ఇంటర్‌ఫేస్‌ను అమలు చేసే ఒక కాంక్రీట్ క్లాస్;
  • ConcreteObserver అనేది అబ్జర్వర్ ఇంటర్‌ఫేస్‌ను అమలు చేసే కాంక్రీట్ క్లాస్.

సిస్టమ్ ఉన్నప్పుడు అబ్జర్వర్ నమూనా ఉపయోగించబడుతుంది:

  • సందేశాలను పంపే కనీసం ఒక వస్తువు ఉంది;
  • సందేశాల గ్రహీత కనీసం ఒకరు ఉన్నారు మరియు అప్లికేషన్ రన్ అవుతున్నప్పుడు వారి సంఖ్య మరియు కూర్పు మారవచ్చు;
  • పరస్పర చర్యల యొక్క బలమైన కలయికను నివారిస్తుంది.

సందేశాలను పంపినవారు తమకు అందించిన సమాచారంతో స్వీకర్తలు ఏమి చేస్తారనే దానిపై ఆసక్తి చూపని సందర్భాల్లో ఈ నమూనా తరచుగా ఉపయోగించబడుతుంది.

సందర్శకుడు

సందర్శకుడు అనేది ఇతర తరగతుల వస్తువులపై చేసే ఆపరేషన్‌ను వివరించే ప్రవర్తనా రూపకల్పన నమూనా. సందర్శించడం లేదా మారినప్పుడు, సర్వీస్డ్ తరగతులను మార్చవలసిన అవసరం లేదు.

డబుల్-డిస్పాచింగ్ డౌన్‌కాస్ట్‌ను ఆశ్రయించకుండా కోల్పోయిన రకం సమాచారాన్ని తిరిగి పొందడం కోసం టెంప్లేట్ క్లాసిక్ టెక్నిక్‌ను ప్రదర్శిస్తుంది.

సందర్శకుడు

మీరు అనేక వస్తువులపై కొన్ని డిస్‌కనెక్ట్ చేయబడిన ఆపరేషన్‌లు చేయాలి, కానీ మీరు వాటి కోడ్‌ను కలుషితం చేయకుండా ఉండాలి. మరియు ప్రతి నోడ్ రకాన్ని ప్రశ్నించడానికి మరియు కావలసిన ఆపరేషన్ చేయడానికి ముందు పాయింటర్‌ను సరైన రకానికి ప్రసారం చేయడానికి మార్గం లేదా కోరిక లేదు.

ఒకవేళ టెంప్లేట్ ఉపయోగించాలి:

  • విభిన్న ఇంటర్‌ఫేస్‌లతో వివిధ తరగతులకు చెందిన వివిధ వస్తువులు ఉన్నాయి, అయితే నిర్దిష్ట తరగతులపై ఆధారపడిన వాటిపై కార్యకలాపాలు నిర్వహించాలి;
  • నిర్మాణంపై, నిర్మాణాన్ని క్లిష్టతరం చేసే వివిధ కార్యకలాపాలను నిర్వహించడం అవసరం;
  • నిర్మాణంపై కొత్త కార్యకలాపాలు తరచుగా జోడించబడతాయి.

మధ్యవర్తి

మధ్యవర్తి అనేది ప్రవర్తనా రూపకల్పన నమూనా, ఇది వదులుగా కలపడం మరియు వస్తువులు ఒకదానికొకటి స్పష్టంగా సూచించాల్సిన అవసరాన్ని నివారించేటప్పుడు బహుళ వస్తువులు పరస్పర చర్య చేయడానికి అనుమతిస్తుంది.

మధ్యవర్తి

మధ్యవర్తి నమూనా అనేక వస్తువుల పరస్పర చర్యను నిర్ధారించడానికి మిమ్మల్ని అనుమతిస్తుంది, అయితే వదులుగా కలపడం మరియు వస్తువులు ఒకదానికొకటి స్పష్టంగా సూచించాల్సిన అవసరాన్ని తొలగిస్తుంది.

మధ్యవర్తి వస్తువులతో సమాచారాన్ని మార్పిడి చేసుకోవడానికి ఇంటర్‌ఫేస్‌ను నిర్వచిస్తాడుసహచరులు, ఒక నిర్దిష్ట మధ్యవర్తి వస్తువుల చర్యలను సమన్వయం చేస్తుందిసహచరులు.

ప్రతి సహోద్యోగి తరగతికి దాని వస్తువు గురించి తెలుసుమధ్యవర్తి, సహోద్యోగులందరూ మధ్యవర్తితో మాత్రమే సమాచారాన్ని మార్పిడి చేసుకుంటారు, అతను లేనప్పుడు వారు నేరుగా సమాచారాన్ని మార్పిడి చేసుకోవాలి.

సహచరులుపునఃవిక్రేత/span>కి అభ్యర్థనలను పంపండి మరియు దాని నుండి అభ్యర్థనలను స్వీకరించండి. మధ్యవర్తి ప్రతి అభ్యర్థనను ఒకటి లేదా అంతకంటే ఎక్కువ మందికి ఫార్వార్డ్ చేయడం ద్వారా సహకార ప్రవర్తనను అమలు చేస్తారుసహచరులు.