Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan corak penyesuai corak reka bentuk Java

Bagaimana untuk melaksanakan corak penyesuai corak reka bentuk Java

WBOY
WBOYke hadapan
2023-04-25 10:37:061453semak imbas

    Apakah corak penyesuai

    Corak penyesuai (Penyesuai) ditakrifkan seperti berikut: Tukar antara muka kelas kepada antara muka lain yang pelanggan? mahu, supaya Kelas asal yang tidak boleh berfungsi bersama kerana antara muka yang tidak serasi boleh berfungsi bersama. Corak penyesuai dibahagikan kepada dua jenis: corak struktur kelas dan corak struktur objek Yang pertama mempunyai tahap gandingan yang lebih tinggi antara kelas daripada yang kedua, dan memerlukan pengaturcara memahami struktur dalaman komponen yang berkaitan dalam perpustakaan komponen sedia ada, jadi ia. agak jarang digunakan.

    Kelebihan

    1. Pelanggan boleh memanggil antara muka sasaran secara telus melalui penyesuai.

    2. Kelas sedia ada digunakan semula Pengaturcara tidak perlu mengubah suai kod asal dan menggunakan semula kelas penyesuai sedia ada.

    3. Asingkan kelas sasaran dan kelas penyesuai untuk menyelesaikan masalah antara muka yang tidak konsisten antara kelas sasaran dan kelas penyesuai.

    4. Mematuhi prinsip pembukaan dan penutup dalam banyak senario perniagaan.

    Kelemahan

    1. Proses penulisan penyesuai perlu dipertimbangkan sepenuhnya bersama-sama dengan senario perniagaan, yang mungkin meningkatkan kerumitan sistem.

    2. Meningkatkan kesukaran membaca kod dan mengurangkan kebolehbacaan kod Penggunaan penyesuai yang berlebihan akan menjadikan kod sistem menjadi kucar-kacir.

    Mata pengetahuan

    Corak penyesuai kelas: Ia boleh dilaksanakan menggunakan warisan berbilang, seperti C++ Kelas penyesuai boleh ditakrifkan untuk mewarisi kedua-dua antara muka perniagaan sistem semasa dan komponen yang sudah wujud dalam pustaka komponen sedia ada; Java tidak menyokong warisan berbilang, tetapi anda boleh menentukan kelas penyesuai untuk melaksanakan antara muka perniagaan sistem semasa sambil mewarisi komponen yang telah wujud dalam pustaka komponen sedia ada.

    Mod penyesuai objek: Anda boleh memperkenalkan komponen yang telah dilaksanakan dalam pustaka komponen sedia ada ke dalam kelas penyesuai, yang turut melaksanakan antara muka perniagaan sistem semasa. Sekarang mari kita perkenalkan struktur asas mereka.

    Pelaksanaan mod penyesuai

    Kes: Hongmao menggunakan kristal api untuk mengaktifkan Fire Dance Whirlwind Sword Qi

    Antara muka sasaran: Changhong Sword Qi

    Jenis penyesuaian: Fire Dance Whirlwind Sword Qi

    Jenis penyesuai: Fire Crystal

    Hongmao hanya boleh mengaktifkan Changhong Sword Qi pada masa ini, tetapi dia mahu mengaktifkan api Wu Whirlwind Sword Qi

    Boleh hanya menggunakan kuasa kristal api untuk mengubah Changhong Sword Qi menjadi Fire Wu Whirlwind Sword Qi

    Nota: Saya sedang menyesuaikan Fire Wu Whirlwind Sword Qi kepada Changhong Jianqi

    Class Adapter

    Changhong Jianqi

    Mengisytiharkan antara muka Changhong Jianqi, termasuk kaedah abstrak untuk mengaktifkan Changhong Jianqi

    public interface Chang {
        void chang();
    }
    Fire Dance Whirlwind Sword Qi

    Fire Dance Whirlwind Sword Qi kategori , mengisytiharkan kaedah untuk mengaktifkan Pedang Angin Puyuh Tarian Api Qi.

    public class Huo {
        public void huo() {
            System.out.println("火舞旋风剑气");
        }
    }
    Fire Crystal

    Kelas Fire Crystal mewarisi kelas Fire Dance Whirlwind Sword Qi (Tujuan: Selepas mewarisi, anda boleh menggunakan kaedah dalam kelas), dan melaksanakan Pedang Changhong Antara muka Qi. (Tujuan: Untuk merealisasikan kaedah untuk mengaktifkan Changhong Sword Qi). Antara kaedah untuk mengaktifkan Changhong Sword Qi, kaedah untuk mengaktifkan Fire Dance Whirlwind Sword Qi digunakan.

    public class JingShi extends Huo implements Chang {
        @Override
        public void chang() {
            huo();
        }
    }
    Ujian
    public class Demo {
        public static void main(String[] args) {
            Chang haha = new JingShi();
            haha.chang();
        }
    }

    Bagaimana untuk melaksanakan corak penyesuai corak reka bentuk Java

    Penyesuai Objek

    Changhong Jianqi

    Isytiharkan Changhong Jianqi Antara muka mengandungi kaedah abstrak untuk mengaktifkan Changhong Sword Qi

    public interface Chang {
        void chang();
    }
    Fire Dance Whirlwind Sword Qi

    Fire Dance Whirlwind Sword Qi kelas, mengisytiharkan kaedah untuk mengaktifkan Fire Dance Whirlwind Sword Qi .

    public class Huo {
        public void huo() {
            System.out.println("火舞旋风剑气");
        }
    }
    Kristal Api

    Kelas kristal api melaksanakan antara muka Changhong Sword Qi, mengisytiharkan atribut Fire Dance Whirlwind Sword Qi, dan melaksanakan kaedah untuk mengaktifkan Changhong Sword Qi . Kaedah mengaktifkan Pedang Angin Puyuh Tarian Api Qi termasuk dalam kaedah mengaktifkan Pedang Qi Changhong.

    public class JingShi implements Chang {
        private Huo huo;
        JingShi() {
        }
        JingShi(Huo huo) {
            this.huo = huo;
        }
        @Override
        public void chang() {
            huo.huo();
        }
    }
    Ujian

    Baharu objek Fire Dance Whirlwind Sword Qi, objek Batu Kristal Api baharu dan hantar objek Fire Dance Whirlwind Sword Qi ke dalam objek Batu Kristal Api.

    public class Demo {
        public static void main(String[] args) {
            Huo huo = new Huo();
            Chang haha = new JingShi(huo);
            haha.chang();
        }
    }

    Bagaimana untuk melaksanakan corak penyesuai corak reka bentuk Java

    Atas ialah kandungan terperinci Bagaimana untuk melaksanakan corak penyesuai corak reka bentuk Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam