3.1 சிங்கிள்டன்

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

சிங்கிள்டன்

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

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

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

நன்மை:

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

குறைபாடுகள்:

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

3.2 தொழிற்சாலை [முறை]

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

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

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

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

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

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

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

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

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

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

பலம்:

  • குறிப்பிட்ட வகுப்புகளை தனிமைப்படுத்துகிறது;
  • தயாரிப்பு குடும்பங்களை மாற்றுவதை எளிதாக்குகிறது;
  • தயாரிப்பு இணக்கத்தன்மைக்கு உத்தரவாதம் அளிக்கிறது.

உங்கள் நிரல் கோப்பு முறைமையுடன் செயல்படுகிறது என்று வைத்துக்கொள்வோம். பின்னர் லினக்ஸில் வேலை செய்ய உங்களுக்கு LinuxFile, LinuxDirectory, LinuxFileSystem ஆப்ஜெக்ட்கள் தேவை. மேலும் Windwosல் வேலை செய்ய WindowsFile, WindowsDirectory, WindowsFileSystem வகுப்புகள் தேவை.

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

3.4 முன்மாதிரி

முன்மாதிரி என்பது ஒரு உருவாக்கும் வடிவமைப்பு முறை.

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

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

முன்மாதிரி

முறை இதற்குப் பயன்படுத்தப்படுகிறது:

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

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

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