சேவை சார்ந்த கட்டிடக்கலையின் (SOA) வளர்ச்சியுடன், அதிகமான நிறுவனங்கள் தங்கள் நிறுவன அமைப்புகளுக்கு மூன்றாம் தரப்பு சேவைகளைப் பயன்படுத்துகின்றன. இந்த நிறுவனங்கள் வேகமாக மாறிவரும் வணிகச் சூழலுடன் தொடர்ந்து இருக்க வேண்டும், அதாவது ஒரு சேவை வழங்குநரின் சேவைகளை மற்றொரு சேவை வழங்குநரின் சேவையை கைவிட்டுவிடலாம்.
இதுபோன்ற சந்தர்ப்பங்களில், ஒரு வணிகத்தின் தற்போதைய கட்டமைப்பு புதிய வழங்குனருடன் பொருந்தாமல் இருக்கலாம். புதிய மென்பொருளுடன் இணங்குவதற்கு நிறுவனக் குறியீட்டை மீண்டும் எழுதுவதற்கு மாதங்களை வீணாக்குவதற்குப் பதிலாக, ஒரு வணிகமானது அடாப்டர் வடிவமைப்பு முறையைப் பயன்படுத்தலாம்.
அடாப்டர் டிசைன் பேட்டர்ன் என்றால் என்ன?
பொருந்தாத இடைமுகங்களைக் கொண்ட வகுப்புகள் ஒன்றாக வேலை செய்ய அடாப்டர் முறை அனுமதிக்கிறது. ஏற்கனவே உள்ள வகுப்பின் (அல்லது மென்பொருள்) இடைமுகத்தை ஒரு கிளையன்ட் (அல்லது சேவை) எதிர்பார்க்கும் ஒன்றாக மாற்றுவதன் மூலம் இது செய்கிறது. இரண்டு வகையான அடாப்டர்கள் உள்ளன: பொருள் அடாப்டர்கள் மற்றும் வகுப்பு அடாப்டர்கள்.
ஆப்ஜெக்ட் அடாப்டர் அடாப்டரை அடாப்டருடன் மடிக்க கலவையைப் பயன்படுத்துகிறது, வாடிக்கையாளர் எதிர்பார்க்கும் இடைமுகத்தை திறம்பட உருவாக்குகிறது. எனவே, கிளையன்ட் ஒரு சரத்தை எதிர்பார்த்தால், அடாப்டர் ஒரு முழு எண்ணை (அடாப்டீ) எடுத்து அதற்கு ஒரு சரத்தின் பண்புகளைக் கொடுக்கும்.
மேலே உள்ள வகுப்பு வரைபடம் பொருள் அடாப்டரைக் குறிக்கிறது. தி அடாப்டர் வகுப்பு செயல்படுத்துகிறது இலக்கு இடைமுகம் , அனைத்து இடைமுகத்தின் முறைகளுக்கும் திறம்பட அணுகலைப் பெறுதல். பின்னர் அது ஒரு தழுவி தழுவி மற்றும் அதை மறைக்கிறது தழுவி உடன் இலக்கு இடைமுகம் முறைகள்.
கிளாஸ் அடாப்டர் பல மரபுரிமைகளைப் பயன்படுத்துகிறது, இதில் அடாப்டர் கிளாஸ் என்பது அடாப்டீ மற்றும் இலக்கு வகுப்பு இரண்டின் துணைப்பிரிவாகும். கீழேயுள்ள வகுப்பு வரைபடம், பல மரபுகளை ஆதரிக்கும் நிரலாக்க மொழிகளில் நீங்கள் பயன்படுத்தக்கூடிய வகுப்பு அடாப்டரைக் குறிக்கிறது.
ஜாவாவில் அடாப்டர் வடிவமைப்பு வடிவத்தை செயல்படுத்துதல்
இந்த பயன்பாடு ஆப்ஜெக்ட் அடாப்டரை செயல்படுத்தும். இந்த மாதிரி பயன்பாடு, கட்டண அட்டைகளின் பயன்பாடு மற்றும் செயலாக்கத்திலிருந்து கிரெடிட் கார்டுகளுக்கு மாறும் நிதி நிறுவனத்தை உருவகப்படுத்தும். இந்த நிறுவனம் முதலில் பின்வரும் கட்டண அட்டை இடைமுகத்தைப் பயன்படுத்தியது:
public interface ChargeCard {
public void monthlyBalance();
public void lateFee();
public void Annualfee();
}
இந்த அமைப்பின் அமைப்பு செயலாக்கப்படும் ஒரு பிரபலமான கட்டண அட்டை பிளம் கார்டு ஆகும்:
ஃபோட்டோஷாப்பில் அனைத்து வண்ணங்களையும் எவ்வாறு தேர்வு செய்வது
public class PlumCard implements ChargeCard {
private int cardNo;
private String customerName;
private double balance;
// primary constructor
public PlumCard(int cardNo, String customerName, double balance) {
this.cardNo = cardNo;
this.customerName = customerName;
this.balance = balance;
}
// getters and setters
public int getCardNo() {
return cardNo;
}
public void setCardNo(int cardNo) {
this.cardNo = cardNo;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
@Override
public void monthlyBalance() {
System.out.println("In January " + this.customerName + " spent " + this.balance);
}
@Override
public void lateFee() {
System.out.println(this.customerName + " monthly latefee is .00");
}
@Override
public void Annualfee() {
System.out.println(this.customerName + " annual fee is 0.00");
}
}
இந்த நிதி நிறுவனம் கிரெடிட் கார்டுகளுக்கு மாறுகிறது மற்றும் கட்டண அட்டைகளை படிப்படியாக நீக்குகிறது, எனவே அவர்களின் வாடிக்கையாளர்களில் சிலர் இப்போது கிரெடிட் கார்டுகளை வைத்திருக்கிறார்கள்:
public interface CreditCard {
public void monthlyMinPayment();
public void interest();
public void Annualfee();
}
நிதி நிறுவன நிறுவன அமைப்பு இப்போது கிரெடிட் கார்டுகளை மட்டுமே செயலாக்குகிறது, ஏனெனில் அது வரும் ஆண்டில் கட்டண அட்டைகளின் பயன்பாட்டை நிறுத்த விரும்புகிறது. ஆனால் அவர்களது பெரும்பாலான வாடிக்கையாளர்கள் இன்னும் கட்டண அட்டைகளைப் பயன்படுத்துகின்றனர். எனவே, அனைத்து வாடிக்கையாளர்களும் கிரெடிட் கார்டுக்கு மாறும் வரை அடாப்டரை செயல்படுத்துவதே சிறந்தது என்று பொறியாளர்கள் முடிவு செய்தனர்.
public class ChargeCardAdapter implements CreditCard {
ChargeCard chargeCard;
public ChargeCardAdapter(ChargeCard chargeCard) {
this.chargeCard = chargeCard;
}
@Override
public void monthlyMinPayment() {
this.chargeCard.monthlyBalance();
}
@Override
public void interest() {
this.chargeCard.lateFee();
}
@Override
public void Annualfee() {
this.chargeCard.Annualfee();
}
}
இந்த சார்ஜ் கார்டு அடாப்டர் ஜாவா வகுப்பு கிரெடிட் கார்டை செயல்படுத்துகிறது ஜாவா இடைமுகம் . இது சார்ஜ் கார்டை (அடாப்டீ) மாற்றியமைக்கிறது, இது கிரெடிட் கார்டின் பண்புகளை அளிக்கிறது. எடுத்துக்காட்டாக, கிரெடிட் கார்டின் வட்டிக் கட்டணத்தை கணினி செயல்படுத்தும், இது இதுவரை மாற்றப்படாத கட்டண அட்டை வாடிக்கையாளரின் தாமதக் கட்டணமாகும்.
அடாப்டர் பேட்டர்னைப் பயன்படுத்துவதன் நன்மைகள்
அடாப்டர் வடிவத்தைப் பயன்படுத்துவதன் முக்கிய நன்மை என்னவென்றால், வாடிக்கையாளர்கள் தங்கள் குறியீட்டை மாற்றாமல் புதிய சேவைகள், நூலகங்கள் மற்றும் அம்சங்களைப் பயன்படுத்த அனுமதிக்கிறது. இது பயன்பாட்டு அளவிடுதலை ஊக்குவிக்கிறது.
மற்றொரு நன்மை என்னவென்றால், இந்த முறையும் நெகிழ்வானது. அடாப்டர் முறை இரண்டு செயல்படுத்தல் முறைகளை வழங்குகிறது: பொருள் அடாப்டர்கள் மற்றும் வகுப்பு அடாப்டர்கள்.