CodeGym/Java Course/தொகுதி 3/வடிவமைப்பு வடிவங்கள்

வடிவமைப்பு வடிவங்கள்

கிடைக்கப்பெறுகிறது

1.1 வடிவங்களுக்கான அறிமுகம்

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

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

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

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

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

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

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

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

1.2 வடிவமைப்பு வடிவங்களின் வரலாறு

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

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

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

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

எனவே, 1994 இல் புத்தகம் "பொருள் சார்ந்த வடிவமைப்பின் நுட்பங்கள்" என்பதில் ஆச்சரியமில்லை. வடிவமைப்பு வடிவங்கள்”, இதில் 23 வடிவங்கள் உள்ளன, அவை பொருள் சார்ந்த வடிவமைப்பின் பல்வேறு சிக்கல்களைத் தீர்க்கின்றன.

இந்த புத்தகம் 4 எழுத்தாளர்களால் எழுதப்பட்டது: எரிச் காமா, ரிச்சர்ட் ஹெல்ம், ரால்ப் ஜான்சன் மற்றும் ஜான் விலிசைட்ஸ். புத்தகத்தின் தலைப்பு யாராலும் நினைவில் கொள்ள முடியாத அளவுக்கு நீளமாக இருந்தது. எனவே, விரைவில் எல்லோரும் அதை “நான்கு பேர் கொண்ட கும்பலின் புத்தகம்”, அதாவது “நான்கு பேர் கொண்ட கும்பலின் புத்தகம்” , பின்னர் “GoF புத்தகம்” என்று அழைக்கத் தொடங்கினர்.

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

முக்கியமான! வடிவங்கள் சில சூப்பர் அசல் தீர்வுகள் அல்ல, மாறாக, அடிக்கடி சந்திக்கும், அதே பிரச்சனைக்கான பொதுவான தீர்வுகள். நல்ல நிரூபிக்கப்பட்ட தீர்வுகள்.

1.3 வடிவங்களின் பட்டியல்

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

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

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

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

வடிவங்கள் என்ன?

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

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

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

ஆனால் முக்கிய விஷயம் என்னவென்றால், வடிவங்கள் நோக்கத்தில் வேறுபடுகின்றன. நாம் தெரிந்துகொள்ளும் வடிவங்களை மூன்று முக்கிய குழுக்களாக பிரிக்கலாம்:

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

1.4 UML அறிமுகம்

கேங் ஆஃப் ஃபோர் புத்தகத்தில் விவரிக்கப்பட்டுள்ள அதே 23 வடிவங்களைப் பார்த்து ஆரம்பிக்கலாம். இரண்டு வடிவங்களும் அவற்றின் பெயர்களும் ஒரு புதிய புரோகிராமருக்கு கூட நன்கு தெரிந்த விஷயங்கள். நான் அவர்களுக்கு உங்களை அறிமுகப்படுத்துவேன், ஆனால் வடிவங்களைப் பற்றிய புத்தகத்தைப் படிக்க நான் கடுமையாக பரிந்துரைக்கிறேன்.

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

UML மூலம், வெவ்வேறு நிறுவனங்களுக்கு இடையிலான உறவுகளை நீங்கள் விவரிக்கலாம். எங்கள் விஷயத்தில், இவை பொருள்கள் மற்றும் வகுப்புகள்.

வகுப்புகளுக்கு இடையிலான உறவுகள் நான்கு வகையான அம்புகளால் விவரிக்கப்பட்டுள்ளன:

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

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

இணைப்பு வைரம் கருப்பு என்றால், இணைப்பு பலவீனமாக இருக்கும்: பொருள்கள் ஒன்றுக்கொன்று இல்லாமல் இருக்கலாம். HttpRequestவைரம் வெண்மையாக இருந்தால், அந்த பொருள்கள் ஒரு வகுப்பு மற்றும் அதன் குழந்தை வர்க்கம் போன்ற பலமாக தொடர்புடையவை HttpRequest.Builder.

1.5 வடிவங்களின் பட்டியல்

வடிவங்களின் வகைகள் வெவ்வேறு வண்ணங்கள் மற்றும் எழுத்துக்களால் குறிக்கப்படும்:

பி- நடத்தை (நடத்தை);

சி- உருவாக்கும் (உருவாக்கம்);

எஸ்- கட்டமைப்பு (கட்டமைப்பு).

இறுதியாக, 23 வடிவமைப்பு வடிவங்களின் பட்டியல்:

சி- சுருக்கம் தொழிற்சாலை

எஸ்- அடாப்டர்

எஸ்- பாலம்

சி- கட்டுபவர்

பி- பொறுப்புகளின் சங்கிலி

பி- அணி

எஸ்- இணைப்பான்

எஸ்- அலங்கரிப்பவர்

எஸ்- முகப்பு

சி- தொழிற்சாலை முறை

எஸ்- சந்தர்ப்பவாதி

பி- மொழிபெயர்ப்பாளர்

பி- இடிரேட்டர்

பி- இடைத்தரகர்

பி- காப்பாளர்

சி- முன்மாதிரி

எஸ்- பதிலாள்

பி- பார்வையாளர்

சி- தனிமை

பி- நிலை

பி- மூலோபாயம்

பி- டெம்ப்ளேட் முறை

பி- பார்வையாளர்

கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை