1.1 నమూనాల పరిచయం

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

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

ముఖ్యమైనది! రష్యన్ భాషలో, డిజైన్ అనే పదానికి సాధారణంగా గ్రాఫిక్ డిజైన్ అని అర్ధం, ఆంగ్లంలో ఇది అలా కాదు. ఆంగ్ల పదం డిజైన్ "డిజైన్" మరియు / లేదా "డివైస్" అనే పదానికి దగ్గరగా ఉంటుంది. ఉదాహరణకు, ఇంజిన్ రూపకల్పన దాని రూపాన్ని కాదు, కానీ దాని అంతర్గత నిర్మాణం.

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

కాబట్టి ఈ డిజైన్ నమూనా ఏమిటి? అన్నింటిలో మొదటిది, డిజైన్ నమూనా అనేది ప్రామాణిక సమస్యకు ప్రామాణిక పరిష్కారం . మంచి, సమర్థవంతమైన మరియు సమయం-పరీక్షించిన పరిష్కారం.

మీరు సైకిల్‌ను డిజైన్ చేయమని అడిగారని అనుకుందాం, మీరు దానిని రెండు చక్రాలు, మూడు లేదా ఐదు కూడా చేయవచ్చు. కాబట్టి మార్గం ద్వారా, డిజైన్ ప్రారంభంలో, అది. కానీ సమయం-పరీక్షించిన విధానం రెండు చక్రాలు. కానీ ప్రస్తుత స్పష్టమైన విధానం నొప్పి మరియు తప్పుల ద్వారా వెళ్ళింది:

సాధారణంగా, టెంప్లేట్ అనేది నేరుగా కోడ్‌గా మార్చబడే పూర్తి పరిష్కారం కాదు, ఇది వివిధ పరిస్థితులలో ఉపయోగించబడే సమస్యకు మంచి పరిష్కారానికి ఒక ఉదాహరణ.

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

1.2 డిజైన్ నమూనాల చరిత్ర

70వ దశకంలో, ప్రోగ్రామర్లు మొత్తం డెవలప్‌మెంట్ టీమ్‌లచే పని చేయాల్సిన పెద్ద ప్రోగ్రామ్‌లను అభివృద్ధి చేయవలసిన అవసరాన్ని ఎదుర్కొన్నారు. పనిని నిర్వహించడానికి వివిధ పద్ధతులు ప్రయత్నించబడ్డాయి, అయితే నిర్మాణ పరిశ్రమ అభివృద్ధిని ఎక్కువగా ప్రభావితం చేసింది.

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

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

నిర్మాణంలో నమూనాలు సాధారణ సమయం-పరీక్షించిన నిర్ణయాలను వివరించాయి: కిటికీలు ఎంత ఎత్తులో ఉండాలి, భవనంలో ఎన్ని అంతస్తులు ఉండాలి, మైక్రోడిస్ట్రిక్ట్‌లో చెట్లు మరియు పచ్చిక బయళ్లకు ఎంత విస్తీర్ణం కేటాయించాలి.

అందువల్ల, 1994 లో “టెక్నిక్స్ ఆఫ్ ఆబ్జెక్ట్-ఓరియెంటెడ్ డిజైన్” పుస్తకం రావడంలో ఆశ్చర్యం లేదు. డిజైన్ నమూనాలు”, ఇందులో ఆబ్జెక్ట్-ఓరియెంటెడ్ డిజైన్‌లోని వివిధ సమస్యలను పరిష్కరించే 23 నమూనాలు ఉన్నాయి.

ఈ పుస్తకాన్ని 4 రచయితలు రాశారు: ఎరిచ్ గామా, రిచర్డ్ హెల్మ్, రాల్ఫ్ జాన్సన్ మరియు జాన్ వ్లిస్సైడ్స్. పుస్తకం పేరు ఎవరికీ గుర్తుపట్టలేనంత పొడవుగా ఉంది. అందువల్ల, త్వరలో అందరూ దీనిని "నలుగురి ముఠా ద్వారా పుస్తకం" అని పిలవడం ప్రారంభించారు, అంటే "నలుగురి ముఠా నుండి పుస్తకం" , ఆపై "GoF పుస్తకం" అని కూడా పిలుస్తారు.

మరియు అప్పటి నుండి, ఇతర డిజైన్ నమూనాలు కనుగొనబడ్డాయి. ప్రోగ్రామింగ్ యొక్క అన్ని రంగాలలో "నమూనా" విధానం ప్రజాదరణ పొందింది, కాబట్టి ఇప్పుడు మీరు ఆబ్జెక్ట్ డిజైన్ వెలుపల అన్ని రకాల నమూనాలను కనుగొనవచ్చు.

ముఖ్యమైనది! నమూనాలు కొన్ని సూపర్-ఒరిజినల్ పరిష్కారాలు కావు, కానీ, దీనికి విరుద్ధంగా, తరచుగా ఎదుర్కొనే, అదే సమస్యకు సాధారణ పరిష్కారాలు. మంచి నిరూపితమైన పరిష్కారాలు.

1.3 నమూనాల జాబితా

చాలా మంది ప్రోగ్రామర్లు వారి మొత్తం జీవితంలో ఒకే నమూనాను నేర్చుకోలేదు, అయినప్పటికీ, వాటిని ఉపయోగించకుండా నిరోధించదు. మేము ముందే చెప్పినట్లుగా, నమూనాలు మంచి సమయం-పరీక్షించిన పరిష్కారాలు, మరియు ప్రోగ్రామర్ ఒక మూర్ఖుడు కాకపోతే, అనుభవంతో అతను స్వయంగా అలాంటి పరిష్కారాలను కనుగొంటాడు.

అయితే, డజన్ల కొద్దీ ట్రయల్స్ మరియు లోపాల ద్వారా, ఇప్పటికే ఈ విధంగా వెళ్లి, వారి అనుభవం మరియు జీవిత జ్ఞానంతో పుస్తకాలు వ్రాసిన వ్యక్తులు ఉన్నప్పుడు సరైన పరిష్కారాలకు ఎందుకు వచ్చారు?

మీరు రెంచ్‌తో గోరును కొట్టవచ్చు, కానీ ఎందుకు? మీరు గట్టిగా ప్రయత్నించినట్లయితే మీరు డ్రిల్ను కూడా ఉపయోగించవచ్చు. కానీ వాయిద్యం యొక్క మంచి చేతన స్వాధీనం అనేది ఒక ఔత్సాహిక నుండి ఒక ప్రొఫెషనల్‌ని వేరు చేస్తుంది. మరియు డ్రిల్ యొక్క ప్రధాన లక్షణం ఇందులో లేదని ప్రొఫెషనల్‌కి తెలుసు. కాబట్టి, మీరు నమూనాలను ఎందుకు తెలుసుకోవాలి?

  • నిరూపితమైన పరిష్కారాలు. మీరు చక్రాన్ని తిరిగి ఆవిష్కరించే బదులు ఆఫ్-ది-షెల్ఫ్ సొల్యూషన్స్‌ని ఉపయోగించి తక్కువ సమయాన్ని వెచ్చిస్తారు. కొన్ని నిర్ణయాలు మీరు మీ గురించి ఆలోచించవచ్చు, కానీ చాలా మీ కోసం ఒక ఆవిష్కరణ కావచ్చు.
  • కోడ్ ప్రమాణీకరణ. డిజైన్ చేసేటప్పుడు, సాధారణ ఏకీకృత పరిష్కారాలను ఉపయోగిస్తున్నప్పుడు మీరు తక్కువ తప్పుడు లెక్కలు చేస్తారు, ఎందుకంటే వాటిలో దాచిన సమస్యలన్నీ చాలా కాలంగా కనుగొనబడ్డాయి.
  • సాధారణ ప్రోగ్రామింగ్ నిఘంటువు. మీరు ఇతర ప్రోగ్రామర్‌లకు మీరు ఏ చక్కని డిజైన్‌ని రూపొందించారు మరియు దీని కోసం ఏ తరగతులు అవసరమో వివరించడానికి ఒక గంట గడిపే బదులు మీరు నమూనా పేరును చెప్పండి.

నమూనాలు ఏమిటి?

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

అత్యంత తక్కువ-స్థాయి మరియు సరళమైన నమూనాలు ఇడియమ్స్. అవి సార్వత్రికమైనవి కావు, ఎందుకంటే అవి ఒక ప్రోగ్రామింగ్ భాష యొక్క ఫ్రేమ్‌వర్క్‌లో మాత్రమే వర్తిస్తాయి.

దాదాపు ఏ భాషలోనైనా అమలు చేయగల నిర్మాణ నమూనాలు అత్యంత బహుముఖమైనవి. మొత్తం ప్రోగ్రామ్‌ను రూపొందించడానికి అవి అవసరం, మరియు దాని వ్యక్తిగత అంశాలు కాదు.

కానీ ప్రధాన విషయం ఏమిటంటే నమూనాలు ప్రయోజనంతో విభిన్నంగా ఉంటాయి. మనకు పరిచయం అయ్యే నమూనాలను మూడు ప్రధాన సమూహాలుగా విభజించవచ్చు:

  • ప్రోగ్రామ్‌లో అనవసరమైన డిపెండెన్సీలను ప్రవేశపెట్టకుండా వస్తువుల యొక్క సౌకర్యవంతమైన సృష్టిని సృష్టి నమూనాలు చూసుకుంటాయి.
  • నిర్మాణ నమూనాలు వస్తువుల మధ్య సంబంధాలను నిర్మించడానికి వివిధ మార్గాలను చూపుతాయి.
  • ప్రవర్తనా విధానాలు వస్తువుల మధ్య సమర్థవంతమైన సంభాషణను చూసుకుంటాయి.

1.4 UMLకి పరిచయం

గ్యాంగ్ ఆఫ్ ఫోర్ పుస్తకంలో వివరించిన అదే 23 నమూనాలను చూడటం ద్వారా ప్రారంభిద్దాం. కొత్త ప్రోగ్రామర్‌కు కూడా నమూనాలు మరియు వాటి పేర్లు రెండూ తెలిసిన విషయాలు. నేను వారికి మిమ్మల్ని పరిచయం చేస్తాను, కానీ నమూనాల గురించి ఆ పుస్తకాన్ని చదవమని నేను గట్టిగా సిఫార్సు చేస్తున్నాను.

డిజైన్ నమూనాలు నిర్దిష్ట ప్రోగ్రామింగ్ భాషతో ముడిపడి ఉండవు, కాబట్టి UML సాధారణంగా వాటిని వివరించడానికి ఉపయోగించబడుతుంది. ఇది 20 సంవత్సరాల క్రితం బాగా ప్రాచుర్యం పొందింది, కానీ ఇప్పుడు కూడా ఇది కొన్నిసార్లు ఉపయోగించబడుతుంది. మరియు మార్గం ద్వారా, నమూనాల వివరణ UML యొక్క ఉపయోగం ప్రమాణంగా ఉన్న ప్రదేశం.

UMLతో, మీరు వివిధ ఎంటిటీల మధ్య సంబంధాలను వివరించవచ్చు. మా విషయంలో, ఇవి వస్తువులు మరియు తరగతులు.

తరగతుల మధ్య సంబంధాలు నాలుగు రకాల బాణాల ద్వారా వివరించబడ్డాయి:

కూర్పు (కూర్పు) - అగ్రిగేషన్ యొక్క ఉపజాతి, దీనిలో "భాగాలు" "మొత్తం" నుండి విడిగా ఉండవు.
అగ్రిగేషన్ - "భాగం" - "పూర్తి" సంబంధాన్ని వివరిస్తుంది, దీనిలో "భాగం" "మొత్తం" నుండి విడిగా ఉంటుంది. రాంబస్ "మొత్తం" వైపు నుండి సూచించబడుతుంది.
డిపెండెన్సీ - ఒక ఎంటిటీలో (స్వతంత్ర) మార్పు మరొక ఎంటిటీ యొక్క స్థితి లేదా ప్రవర్తనను ప్రభావితం చేస్తుంది (ఆధారపడి). బాణం వైపు ఒక స్వతంత్ర ఎంటిటీ సూచించబడుతుంది.
సాధారణీకరణ - ఇంటర్ఫేస్ యొక్క వారసత్వం లేదా అమలు యొక్క సంబంధం. బాణం వైపు సూపర్ క్లాస్ లేదా ఇంటర్‌ఫేస్ ఉంటుంది.

నిజానికి, ఇక్కడ ప్రతిదీ చాలా సులభం. చివరి బాణం అంటే ఒక తరగతి మరొక తరగతి నుండి సంక్రమించిందని అర్థం. మరియు మొదటి మరియు రెండవ బాణాలు ఏమిటంటే, ఒక వస్తువు రెండవ వస్తువుకు లింక్‌ను నిల్వ చేస్తుంది. మరియు ఇది అంతా.

లింక్ డైమండ్ నల్లగా ఉంటే, లింక్ బలహీనంగా ఉంటుంది: వస్తువులు ఒకదానికొకటి లేకుండా ఉండవచ్చు. HttpRequestవజ్రం తెల్లగా ఉంటే, ఆ వస్తువులు క్లాస్ మరియు దాని చైల్డ్ క్లాస్ వంటి బలమైన సంబంధం కలిగి ఉంటాయి HttpRequest.Builder.

1.5 నమూనాల జాబితా

నమూనాల రకాలు వివిధ రంగులు మరియు అక్షరాలతో సూచించబడతాయి:

బి- ప్రవర్తనా (ప్రవర్తన);

సి- ఉత్పత్తి (సృష్టి);

ఎస్- నిర్మాణాత్మక (నిర్మాణాత్మక).

చివరకు, 23 డిజైన్ నమూనాల జాబితా:

సి- వియుక్త ఫ్యాక్టరీ

ఎస్- అడాప్టర్

ఎస్- వంతెన

సి- బిల్డర్

బి- బాధ్యతల గొలుసు

బి- జట్టు

ఎస్- లింకర్

ఎస్- డెకరేటర్

ఎస్- ముఖభాగం

సి- ఫ్యాక్టరీ పద్ధతి

ఎస్- అవకాశవాది

బి- వ్యాఖ్యాత

బి- ఇటరేటర్

బి- మధ్యవర్తి

బి- కాపలాదారు

సి- నమూనా

ఎస్- ప్రాక్సీ

బి- పరిశీలకుడు

సి- ఒంటరి

బి- రాష్ట్రం

బి- వ్యూహం

బి- టెంప్లేట్ పద్ధతి

బి- సందర్శకుడు