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

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

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

2.1 அடாப்டர்

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

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

அடாப்டர் முறை

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

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

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

பலம்:

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

2.2 அலங்கரிப்பாளர்கள்

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

அலங்கார முறை

ஒரு பொருளுடன் கூடுதல் கடமைகளை மாறும் வகையில் இணைக்கப் பயன்படுகிறது .

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

IntStream.of(50, 60, 70, 80, 90).filter(x -> x < 90).map(x -> x + 10).limit(3).forEach(System.out::print);

அலங்கார வடிவத்தின் பலம்:

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

2.3 ப்ராக்ஸிகள்

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

துணை (ப்ராக்ஸி)

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

Mockito கட்டமைப்பை எவ்வாறு பயன்படுத்தினோம் மற்றும் Mockito.spy() முறை அல்லது @Spy சிறுகுறிப்பைப் பயன்படுத்தி உண்மையான பொருளுக்கான அழைப்பை இடைமறித்தோம் என்பதை நினைவில் கொள்க? அப்போதுதான் ஒரு சிறப்பு ப்ராக்ஸி பொருள் உருவாக்கப்பட்டது, இதன் மூலம் அசல் பொருளுக்கான அனைத்து அழைப்புகளும் அனுப்பப்பட்டன.

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

நோக்கத்தின் அடிப்படையில் ப்ராக்ஸிகளின் வகைகள் :

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

2.4 பாலம்

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

பிரிட்ஜ் பேட்டர்ன் இணைத்தல், திரட்டுதல் ஆகியவற்றைப் பயன்படுத்துகிறது, மேலும் வகுப்புகளுக்கு இடையே பொறுப்பைப் பகிர்ந்து கொள்ள பரம்பரையைப் பயன்படுத்தலாம்.

பாலம்

சுருக்கம் மற்றும் செயல்படுத்தல் பிரிக்கப்பட்டால், அவை சுயாதீனமாக மாறலாம். வேறு வார்த்தைகளில் கூறுவதானால், பிரிட்ஜ் பேட்டர்ன் மூலம் செயல்படுத்தப்படும் போது, ​​இடைமுகத்தின் கட்டமைப்பை மாற்றுவது செயலாக்கத்தின் கட்டமைப்பை மாற்றுவதில் தலையிடாது.

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

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

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

வரைபடங்களில் உள்ள அம்புக்குறியால் குறிப்பிடப்படும் இணைப்பு 2 அர்த்தங்களைக் கொண்டிருக்கலாம்: அ) "ஒரு வகையான", லிஸ்கோவ் மாற்றுக் கொள்கையின்படி, மற்றும் ஆ) சுருக்கத்தின் சாத்தியமான செயலாக்கங்களில் ஒன்று. மொழிகள் பொதுவாக a) மற்றும் b இரண்டையும் செயல்படுத்த மரபுரிமையைப் பயன்படுத்துகின்றன, இது வகுப்பு படிநிலைகளை வீங்கச் செய்கிறது.

இந்த சிக்கலை தீர்க்க பாலம் சரியாக உதவுகிறது: பொருள்கள் A மற்றும் படிநிலை B இன் ஒரு வகுப்பின் பொருளிலிருந்து ஜோடிகளாக உருவாக்கப்படுகின்றன, A படிநிலையில் உள்ள பரம்பரை லிஸ்கோவின் படி "பல்வேறு" மற்றும் "செயல்படுத்துதல்" என்ற கருத்துக்கு அர்த்தம் . சுருக்கம்” என்ற பொருளில் இருந்து அதன் இணைக்கப்பட்ட பொருள் B க்கு ஒரு இணைப்பு பயன்படுத்தப்படுகிறது.

2.5 முகப்பு

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

முகப்பு வார்ப்புரு

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

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

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

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

1
பணி
தொகுதி 3,  நிலை 16பாடம் 1
பூட்டப்பட்டது
Through the Nail with a Microscope
task4101
1
பணி
தொகுதி 3,  நிலை 16பாடம் 1
பூட்டப்பட்டது
Signature Recipe
task4102
1
பணி
தொகுதி 3,  நிலை 16பாடம் 1
பூட்டப்பட்டது
Surprise, Anonymous!
task4103
1
பணி
தொகுதி 3,  நிலை 16பாடம் 1
பூட்டப்பட்டது
Fantastic Creatures
task4104
1
பணி
தொகுதி 3,  நிலை 16பாடம் 1
பூட்டப்பட்டது
Alchemy Library
task4105
கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை