Rumah  >  Artikel  >  Java  >  Bagaimana untuk memahami dan menggunakan corak penyesuai Java?

Bagaimana untuk memahami dan menggunakan corak penyesuai Java?

PHPz
PHPzke hadapan
2023-04-23 09:19:141401semak imbas

1. Apakah mod penyesuai?

Sebenarnya, semua orang mesti biasa dengan perkataan penyesuai Kami tahu bahawa iPhone Apple tidak lagi menyediakan palam pengecasan dalam kotak, jadi kami tidak boleh menggunakan kabel data ini sahaja mengecas pada papan pemalam 220V, jadi kita perlu membeli penyesuai baharu untuk menyambungkan papan pemalam dan telefon mudah alih Ini ialah penyesuai.

Malah, mungkin juga berlaku dalam reka bentuk perisian bahawa komponen dengan fungsi perniagaan tertentu yang perlu dibangunkan sudah wujud dalam perpustakaan komponen sedia ada, tetapi ia tidak serasi dengan spesifikasi antara muka sistem semasa ini dibangunkan semula Kos komponen adalah sangat tinggi, jadi mod penyesuai boleh menyelesaikan masalah ini dengan baik.

2. Definisi corak penyesuai

Corak penyesuai: Tukar antara muka kelas kepada antara muka lain yang dikehendaki pelanggan, supaya kelas yang tidak boleh berfungsi bersama kerana antara muka yang tidak serasi boleh berfungsi bersama. .

Corak penyesuai terbahagi 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 terdapat sedikit aplikasi.

3. Kebaikan dan keburukan corak penyesuai

Kebaikan:

  • Pelanggan boleh memanggil antara muka sasaran secara telus melalui penyesuai

  • Menggunakan semula kelas sedia ada Pengaturcara tidak perlu mengubah suai kod asal dan menggunakan semula kelas penyesuai sedia ada

  • Nyahselesaikan kelas sasaran dan kelas penyesuai. antara muka yang tidak konsisten antara kelas sasaran dan kelas penyesuai

  • Mematuhi prinsip buka-tutup dalam banyak senario perniagaan

Kelemahan:

  • Proses penulisan penyesuai perlu dipertimbangkan secara menyeluruh bersama-sama dengan senario perniagaan, yang mungkin meningkatkan kerumitan sistem

  • Meningkatkan kesukaran membaca kod dan mengurangkan kebolehbacaan jantina kod, penggunaan penyesuai yang berlebihan akan menjadikan kod sistem tidak kemas

4. Struktur dan pelaksanaan corak penyesuai

(Struktur berikut dirujuk daripada Internet)

Struktur corak:

  • Antara muka sasaran: Antara muka yang dijangkakan oleh perniagaan sistem semasa, ia boleh menjadi kelas abstrak atau antara muka

  • Kelas Adaptee: Ia ialah antara muka komponen dalam pustaka komponen sedia ada yang diakses dan disesuaikan

  • Kelas penyesuai: Ia adalah penukar, melalui pewarisan Atau rujuk kepada objek penyesuai, tukar antara muka penyesuai kepada antara muka sasaran dan benarkan pelanggan mengakses penyesuai dalam format antara muka sasaran

Struktur corak penyesuai kelas :

Bagaimana untuk memahami dan menggunakan corak penyesuai Java?

Struktur corak penyesuai objek:

Bagaimana untuk memahami dan menggunakan corak penyesuai Java?

5 A. Gunakan kombinasi Cara untuk melaksanakan penyesuai:

Kami kini mempunyai palam komputer riba tiga fasa, tetapi kami kini perlu menggunakan palam dua fasa untuk mengecas, jadi kami perlu memasang penyesuai dua fasa pada palam ini:

Bagaimana untuk memahami dan menggunakan corak penyesuai Java?Antara muka soket tiga fasa:

Soket dua fasa standard kebangsaan:
/**
 * 三相插座接口
 */
public interface ThreePlugIf {

    //使用三相电流供电
    public void powerWithThree();

}

Komputer riba :
/**
 * 国标的二相插座
 */
public class GBTowPlug {
    public void powerWithTwo(){
        System.out.println("使用二相电流供电");
    }
}

Penyesuai soket tiga fasa kepada dua fasa:
/**
 * 笔记本
 */
public class NoteBook {

    private ThreePlugIf plug;

    public NoteBook(ThreePlugIf plug){
        this.plug = plug;
    }

    //使用插座充电
    public void charge(){
        plug.powerWithThree();
    }
}

Kategori ujian:
/**
 * 三相转二相的插座适配器
 */

public class TwoPlugAdapter implements ThreePlugIf {


    private GBTowPlug plug;

    public TwoPlugAdapter(GBTowPlug plug) {
        this.plug = plug;
    }

    @Override
    public void powerWithThree() {
        System.out.println("通过转换");
        plug.powerWithTwo();
    }
}

Hasil output:
public class Test {

    public static void main(String[] args) {

    GBTowPlug two = new GBTowPlug();
    ThreePlugIf three = new TwoPlugAdapter(two);
    NoteBook nb = new NoteBook(three);
    nb.charge();
	}
}

Dengan penukaran
Menggunakan bekalan kuasa arus dua fasa


Penyesuai yang menggunakan kaedah gabungan dipanggil penyesuai objek

Ciri-ciri:

"Penyesuai" digabungkan sebagai objek Pergi ke kelas penyesuai dan bungkus antara muka sasaran yang diubah suai ke penyesuai

B. Gunakan warisan untuk melaksanakan penyesuai:

Bagaimana untuk memahami dan menggunakan corak penyesuai Java?Warisi penyesuai:

Kelas ujian:
/**
 * 采用继承方式的插座适配器
 */
public class TwoPlugAdapterExtends extends GBTowPlug implements ThreePlugIf{
    @Override
    public void powerWithThree() {
        System.out.println("借助继承适配器");
        this.powerWithTwo();
    }
}

Output:
public class Test {

    public static void main(String[] args) {

    GBTowPlug two = new GBTowPlug();
    ThreePlugIf three = new TwoPlugAdapter(two);
    NoteBook nb = new NoteBook(three);
    nb.charge();

    //使用继承方法
    three = new TwoPlugAdapterExtends();
    nb = new NoteBook(three);
    nb.charge();
}
}

Dengan menukar
Dikuasakan dengan arus dua fasa


Dengan bantuan penyesuai warisan

Gunakan bekalan kuasa arus dua fasa


Kaedah pewarisan dipanggil penyesuai kelas

Ciri-ciri:

Pewarisan berbilang antara muka yang tidak serasi membolehkan pemadanan antara muka sasaran , merealisasikan penyesuaian untuk satu kelas

6 Senario aplikasi corak penyesuai

    Sistem yang dibangunkan sebelum ini mempunyai. kelas yang memenuhi keperluan fungsi sistem baharu, tetapi antara mukanya tidak konsisten dengan antara muka sistem baharu
  • Gunakan komponen yang disediakan oleh pihak ketiga, tetapi definisi antara muka komponen berbeza daripada definisi antara muka yang diperlukan oleh anda sendiri

Atas ialah kandungan terperinci Bagaimana untuk memahami dan menggunakan corak penyesuai 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