Corak penyesuai dalam Java ialah corak reka bentuk struktur yang menukar antara muka kelas kepada antara muka yang dijangkakan oleh pelanggan lain Corak penyesuai membenarkan kelas yang tidak serasi digunakan bersama Bekerja, ia melakukan ini dengan menukar antara muka yang tidak serasi kepada antara muka yang serasi
Corak penyesuai mengandungi tiga peranan berikut:
Antara muka sasaran (Sasaran): Definisi Antara muka yang dijangkakan oleh pelanggan ialah. antara muka yang perlu digunakan oleh pelanggan.
Antara muka sumber (Adaptee): antara muka sedia ada yang tidak serasi, iaitu antara muka yang perlu disesuaikan 🎜>
Penyesuai: Kelas yang menukar antara muka sumber kepada antara muka sasaran dan menyimpan rujukan kepada antara muka sumber untuk memajukan permintaan pelanggan kepada sumber.<.>Corak Penyesuai Kelas: Dalam corak penyesuai kelas, penyesuai mewarisi kedua-dua kelas sasaran dan kelas sumber, dan melaksanakan antara muka sasaran Ini membolehkan penyesuai menukar fungsi kelas sumber kepada antara muka kelas .
Corak penyesuai objek: Dalam corak penyesuai objek, penyesuai memegang contoh kelas sumber dan melaksanakan antara muka sasaran Ini membolehkan penyesuai menukar kefungsian kelas sumber ke dalam antara muka Kelas sasaran
Pelaksanaan
public interface USB { /** * 充电 */ void charge(); }
Antara muka sumber
public class PowerSocket { /** * 提供电源 */ protected void powerSupply(){ System.out.println("提供电源"); } }
Penyesuai kelas
public class PowerSocketToUSBAdapter extends PowerSocket implements USB { /** * 充电 */ @Override public void charge() { powerSupply(); System.out.println("转换为USB充电..."); } }
Penyesuai objek
rreeeUjian
public class PowerSocketToUSBAdapter1 implements USB{ private PowerSocket powerSocket; public PowerSocketToUSBAdapter1(PowerSocket powerSocket) { this.powerSocket = powerSocket; } /** * 充电 */ @Override public void charge() { powerSocket.powerSupply(); System.out.println("转换为USB充电..."); } }
**Mod penyesuai kelas:**Warisi kelas PowerSocket dan laksanakan antara muka USB, tukar PowerSocket kepada pengecasan USB
**Penyesuai objek mod:* * Lulus kelas PowerSocket ke dalam PowerSocketToUSBAdapter1 melalui pembina, dan panggil kaedah powerSupply() PowerSocket dalam kaedah charge() untuk memberikan kuasa
** Penyesuai kelas dan penyesuai objek Perbezaan : **Penyesuai kelas ialah warisan antara kelas, penyesuai objek ialah hubungan komposisi objek, yang juga boleh dikatakan sebagai hubungan perkaitan kelas Ini ialah perbezaan asas antara kedua-dua
Di Java , corak penyesuai objek lebih biasa digunakan daripada corak penyesuai kelas Ini kerana corak penyesuai objek menggunakan hubungan gabungan, yang boleh menggantikan objek yang disesuaikan dengan lebih fleksibel dan tidak akan menjejaskan hubungan warisan asal. kepada perubahan dalam penyesuai Selain itu, penyesuai objek juga mematuhi prinsip pembukaan dan penutupan, jadi apabila anda perlu menambah penyesuai baharu, anda hanya perlu melaksanakan antara muka penyesuai tanpa mengubah suai kod asal penggunaan berbilang warisan. Dan Java tidak menyokong berbilang warisan, jadi dalam Java Adalah sukar untuk menggunakan corak penyesuai kelas dalam .
Mod penyesuai boleh memisahkan klien daripada pelaksanaan khusus, meningkatkan fleksibiliti dan kebolehselenggaraan kod.
Kelemahan
Mod penyesuai memerlukan penambahan objek Penyesuai meningkatkan kerumitan. sistem.
Corak penyesuai akan menjejaskan kebolehbacaan dan kebolehfahaman kod, dan anda perlu mempertimbangkan dengan teliti cara menamakan dan mereka bentuk antara muka kelas penyesuai.
Apabila anda perlu menggunakan kelas sedia ada, tetapi antara mukanya tidak memenuhi keperluan, anda boleh menggunakan corak penyesuai untuk menyesuaikan Padanan.
Apabila kelas berbeza perlu diproses menggunakan kaedah yang sama, anda boleh menggunakan mod penyesuai untuk penyesuaian.
Apabila anda perlu menyepadukan kelas ke dalam berbilang sistem, anda boleh menggunakan corak penyesuai. Pastikan keserasian antara sistem.
Atas ialah kandungan terperinci Apakah kaedah pelaksanaan dan senario aplikasi corak penyesuai Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!