Adapter Pattern ဆိုတာကတော့ Structural Pattern တစ်ခုပါ။ Adapter ဆိုတာနဲ့ ပလပ်ပေါက်တွေ မှာ ထပ်မရရင် သုံးသည့် adapter ကို တန်းမြင်ကြမှာပါ။
Adapter Pattern က အဲဒီ အတိုင်းပါပဲ။ မတူညီသည့် class နှစ်ခုကို တစ်ခု နဲ့ တစ်ခု သုံးလို့ ရအောင် ပြောင်းပေးတာပါ။
ဥပမာ XML ကနေ JOSN object ပြောင်းပေးသလိုပေါ့။
![](https://cldup.com/DOz-juMEK4.png)
Class Diagram ကို ကြည့်ရအောင်။
![](https://cldup.com/cfj40B0ODF.png)
အခု Mile to KM ပြောင်းသည့် ဥပမာ ကြည့်ရအောင်။
![](https://cldup.com/2fT1ud5EbB.png)
Java အနေနဲ့ ရေးရင်
interface MileConverter {
double convertMilesToKilometers(double miles);
}
// MileToKilometerAdapter class that directly converts miles to kilometers
class MileToKilometerAdapter implements MileConverter {
@Override
public double convertMilesToKilometers(double miles) {
// Perform the conversion directly within the adapter
return miles * 1.60934;
}
}
// Client code that uses the MileConverter interface
public class Main {
public static void main(String[] args) {
MileConverter mileConverter = new MileToKilometerAdapter();
double miles = 10;
double kilometers = mileConverter.convertMilesToKilometers(miles);
System.out.println(miles + " miles is equal to " + kilometers + " kilometers");
}
}
Pros and Cons
Adapter pattern သုံးခြင်းဖြင့် Single Responbility ကို လိုက်နာထားသလို Open/Close Principle ကိုလည်း လိုက်နာပါတယ်။
မလိုအပ်ပဲ သုံးရင်တော့ interface တွေ အရမ်းများသွားတာ ဖြစ်နိုင်ပါတယ်။