Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.
Dengan munculnya arsitektur berorientasi layanan (SOA), semakin banyak organisasi yang menggunakan layanan pihak ketiga untuk sistem perusahaan mereka. Perusahaan-perusahaan ini perlu mengikuti lingkungan bisnis yang berubah dengan cepat, yang dapat berarti mengabaikan layanan dari satu penyedia layanan ke penyedia layanan lainnya.
Dalam kasus seperti itu, arsitektur bisnis yang ada mungkin tidak kompatibel dengan penyedia baru. Alih-alih menghabiskan waktu berbulan-bulan untuk menulis ulang kode perusahaan agar kompatibel dengan perangkat lunak baru, bisnis dapat menggunakan pola desain adaptor.
Apa Pola Desain Adaptor?
Pola adaptor memungkinkan kelas yang memiliki antarmuka yang tidak kompatibel untuk bekerja sama. Ini dilakukan dengan mengubah antarmuka kelas (atau perangkat lunak) yang ada menjadi antarmuka yang diharapkan oleh klien (atau layanan). Ada dua jenis adaptor: adaptor objek dan adaptor kelas.
Adaptor objek menggunakan komposisi untuk membungkus orang yang diadaptasi dengan adaptor, secara efektif menghasilkan antarmuka yang diharapkan klien. Jadi, jika klien mengharapkan string, adaptor akan mengambil bilangan bulat (adaptasi) dan memberinya karakteristik string.
Diagram kelas di atas mewakili adaptor objek. Itu kelas adaptor menerapkan antarmuka sasaran, secara efektif mendapatkan akses ke semua metode antarmuka. Kemudian itu mengadaptasi sebuah orang yang beradaptasi dan membungkus itu orang yang beradaptasi dengan antarmuka sasaran metode.
Adaptor kelas menggunakan pewarisan berganda, di mana kelas adaptor adalah subkelas dari penerima adaptasi dan kelas target. Diagram kelas di bawah mewakili adaptor kelas, yang bebas Anda gunakan dalam bahasa pemrograman yang mendukung pewarisan berganda.
Menerapkan Pola Desain Adaptor di Jawa
Aplikasi ini akan mengimplementasikan adaptor objek. Contoh aplikasi ini akan mensimulasikan transisi organisasi keuangan dari penggunaan dan pemrosesan kartu tagihan ke kartu kredit. Organisasi ini awalnya menggunakan antarmuka kartu tagihan berikut:
public interface ChargeCard {
public void monthlyBalance();
public void lateFee();
public void Annualfee();
}
Jenis kartu tagihan populer yang diproses oleh sistem organisasi ini adalah kartu prem:
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 $80.00");
}
@Override
public void Annualfee() {
System.out.println(this.customerName + " annual fee is $200.00");
}
}
Lembaga keuangan ini beralih ke kartu kredit dan menghapus kartu kredit secara bertahap, sehingga beberapa pelanggan mereka kini memiliki kartu kredit:
public interface CreditCard {
public void monthlyMinPayment();
public void interest();
public void Annualfee();
}
Sistem perusahaan lembaga keuangan sekarang hanya memproses kartu kredit, karena akan menghentikan penggunaan kartu kredit di tahun mendatang. Tetapi sebagian besar pelanggan mereka masih menggunakan kartu kredit. Jadi, para insinyur memutuskan yang terbaik adalah mengimplementasikan adaptor sampai semua pelanggan mereka beralih ke kartu kredit.
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();
}
}
Kelas ChargeCardAdapter Java ini mengimplementasikan antarmuka CreditCard Java. Itu mengadaptasi ChargeCard (adaptasi), memberikannya karakteristik kartu kredit. Misalnya, sistem akan memproses biaya bunga kartu kredit, yaitu biaya keterlambatan pelanggan kartu kredit yang belum melakukan konversi.
Keuntungan Menggunakan Pola Adaptor
Keuntungan utama menggunakan pola adaptor adalah memungkinkan klien untuk menggunakan layanan, pustaka, dan fitur baru tanpa mengubah kode mereka. Ini mempromosikan skalabilitas aplikasi.
Keunggulan lainnya adalah pola ini juga fleksibel. Pola adaptor menyediakan dua metode implementasi: adaptor objek dan adaptor kelas.