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:

publikantarmukaChargeCard{
publikruang kosongSaldo bulanan();
publikruang kosonglateFee();
publikruang kosongBiaya tahunan();
}

Jenis kartu kredit populer yang diproses oleh sistem organisasi ini adalah kartu prem:

publikkelasPlumCardalatChargeCard{
pribadiint kartuNo;
pribadi String namapelanggan;
pribadidobel keseimbangan;

// konstruktor utama
publikPlumCard(int cardNo, String namapelanggan, dobel keseimbangan){
ini.cardNo = nomorkartu;
ini.namapelanggan = namapelanggan;
ini.keseimbangan = keseimbangan;
}

// getter dan setter
publikintgetCardNo(){
kembali kartuNo;
}

publikruang kosongsetKartuNo(int kartuNo){
ini.cardNo = nomorkartu;
}

publik Rangkaian getCustomerName(){
kembali Nama Pelanggan;
}

publikruang kosongsetNamaPelanggan(String namapelanggan){
ini.namapelanggan = namapelanggan;
}

publikdobelgetBalance(){
kembali keseimbangan;
}

publikruang kosongsetBalance(dobel keseimbangan){
ini.keseimbangan = keseimbangan;
}

@Mengesampingkan
publikruang kosongSaldo bulanan(){
Sistem.keluar.println("Di Januari " + ini.namapelanggan + " dihabiskan " + ini.keseimbangan);
}

@Mengesampingkan
publikruang kosonglateFee(){
Sistem.keluar.println(ini.namapelanggan + "biaya keterlambatan bulanan adalah $80,00");
}

@Mengesampingkan
publikruang kosongBiaya tahunan(){
Sistem.keluar.println(ini.namapelanggan + "Biaya tahunan adalah $200,00");
}
}

Lembaga keuangan ini beralih ke kartu kredit dan menghapus kartu kredit secara bertahap, sehingga beberapa pelanggan mereka kini memiliki kartu kredit:

publikantarmukaKartu kredit{
publikruang kosongPembayaran Min bulanan();
publikruang kosongminat();
publikruang kosongBiaya tahunan();
}

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.

publikkelasChargeCardAdapteralatKartu kredit{
ChargeCard chargeCard;

publikChargeCardAdapter(Kartu Pengisi Daya){
ini.chargeCard = chargeCard;
}

@Mengesampingkan
publikruang kosongPembayaran Min bulanan(){
ini.chargeCard.monthlyBalance();
}

@Mengesampingkan
publikruang kosongminat(){
ini.chargeCard.lateFee();
}

@Mengesampingkan
publikruang kosongBiaya tahunan(){
ini.chargeCard. Biaya tahunan();
}
}

ChargeCardAdapter ini kelas Jawa mengimplementasikan Kartu Kredit antarmuka Jawa. 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 kodenya. Ini mempromosikan skalabilitas aplikasi.

Keunggulan lainnya adalah pola ini juga fleksibel. Pola adaptor menyediakan dua metode implementasi: adaptor objek dan adaptor kelas.