Rumah > Java > javaTutorial > teks badan

Apakah kaedah pelaksanaan dan senario aplikasi corak penyesuai Java?

王林
Lepaskan: 2023-05-19 09:07:05
ke hadapan
1734 orang telah melayarinya

Pengenalan

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.
  • Dalam corak penyesuai, penyesuai bertindak sebagai lapisan perantaraan yang menukar permintaan pelanggan kepada format yang boleh diterima oleh kelas sasaran biasanya dilaksanakan dalam dua cara berikut:

<.>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

  • Katakan kami mempunyai palam kuasa, tetapi kami ingin memasangkannya ke peranti yang hanya boleh menerima antara muka USB kali ini Kita boleh menggunakan penyesuai untuk mencapainya.

Antara muka sasaran

public interface USB {
    /**
     * 充电
     */
    void charge();
}
Salin selepas log masuk

Antara muka sumber

public class PowerSocket {
    /**
     * 提供电源
     */
    protected void powerSupply(){
        System.out.println("提供电源");
    }
}
Salin selepas log masuk

Penyesuai kelas

public class PowerSocketToUSBAdapter extends PowerSocket implements USB {
    /**
     * 充电
     */
    @Override
    public void charge() {
        powerSupply();
        System.out.println("转换为USB充电...");
    }
}
Salin selepas log masuk

Penyesuai objek

rreee

Ujian

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充电...");
    }
}
Salin selepas log masuk

Dalam contoh ini, PowerSocket ialah antara muka sumber, yang menyediakan kaedah bekalan kuasa ialah antara muka destinasi, yang mentakrifkan kaedah pengecasan.

Apakah kaedah pelaksanaan dan senario aplikasi corak penyesuai Java?

**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

  • Ringkasan

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 .

Corak penyesuai ialah corak reka bentuk yang sangat praktikal tanpa mengubah struktur kod asli. >

Mod penyesuai boleh memisahkan klien daripada pelaksanaan khusus, meningkatkan fleksibiliti dan kebolehselenggaraan kod.

Mod penyesuai boleh meningkatkan Kebolehskalaan sistem, anda boleh mengembangkan fungsi baharu dengan mudah tanpa menjejaskan kestabilan sistem

  • 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.

Senario aplikasi

  • 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 ketelusan diperlukan Apabila anda menggunakan subkelas atau kelas lanjutan kelas dengan berkesan, anda boleh menggunakan corak 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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan