cari
RumahJavajavaTutorialPengenalan terperinci kepada mod jambatan Java

Artikel ini membawakan anda pengetahuan yang berkaitan tentang java, yang terutamanya memperkenalkan isu yang berkaitan dengan mod jambatan Mod jambatan memisahkan abstraksi dan pelaksanaan supaya ia boleh berubah secara bebas, mengurangkan abstraksi tahap gandingan dua dimensi pembolehubah ini saya harap ia akan membantu semua orang.

Pengenalan terperinci kepada mod jambatan Java

Pembelajaran yang disyorkan: "tutorial video java"

Malah, dalam kehidupan sebenar, terdapat banyak kelas yang boleh mempunyai dua atau lebih Perubahan dalam dua dimensi Contohnya, grafik boleh dibahagikan mengikut bentuk atau warna Jika pewarisan digunakan, terdapat m*n jenis grafik dengan bentuk m dan n warna yang sepadan kesukaran perbandingan pengembangan.

Contohnya, teks dalam warna dan fon berbeza, kereta jenama dan kuasa berbeza, lelaki dan wanita berlainan jantina dan pekerjaan, pemain media yang menyokong platform berbeza dan format fail berbeza, dsb. Masalah ini boleh diselesaikan dengan baik jika anda menggunakan mod jambatan.


1. Definisi corak jambatan

Memisahkan abstraksi dan pelaksanaan supaya ia boleh berubah secara bebas. Ia dilaksanakan dengan menggunakan hubungan gabungan dan bukannya hubungan warisan, dengan itu mengurangkan tahap gandingan dua dimensi pembolehubah abstraksi dan pelaksanaan

Jenis corak: Corak reka bentuk struktur

Rajah kelas prinsip:
Pengenalan terperinci kepada mod jambatan Java
Penerangan gambar rajah kelas prinsip:

  1. Kelas pelanggan: Mod jambatan Pemanggil
  2. Kelas abstrak (Abstraksi): mengekalkan Pelaksana/iaitu, kelas pelaksanaannya ConcretelmplementorA...keduanya berada dalam perhubungan gabungan, dan Abstraksi bertindak sebagai jambatan
  3. RehinedAbstraction: ialah subkelas Abstraksi kelas abstrak lmplementor: antara muka kelas pelaksanaan tingkah laku
  4. ConcretelmplementorA/B: kelas pelaksanaan konkrit tingkah laku
  5. dari rajah UML: kelas abstrak dan antara muka di sini adalah hubungan agregasi dan Kelemahan Mod Jambatan

Kelebihan:

Pengasingan abstraksi dan pelaksanaan, kebolehskalaan yang kukuh

Mematuhi prinsip pembukaan dan penutup
  1. Mematuhi prinsip sintesis dan penggunaan semula
  2. Butiran pelaksanaan adalah telus kepada pelanggan
  3. Kelemahan:

3. Struktur mod jambatan
  • Corak jambatan merangkumi peranan utama berikut:
Peranan abstraksi:
Mentakrifkan kelas abstrak dan mengandungi objek pelaksanaan Rujukan

Peranan abstraksi lanjutan (Abstraksi Diperhalusi)

: Ia ialah subkelas peranan abstrak, melaksanakan kaedah perniagaan dalam kelas induk dan memanggil kaedah perniagaan dalam peranan yang dilaksanakan melalui hubungan gabungan
  1. Peranan pelaksana: mentakrifkan antara muka peranan yang dilaksanakan, yang boleh dipanggil dengan melanjutkan peranan abstrak Peranan Pelaksana Konkrit: memberikan pelaksanaan khusus antara muka peranan yang dilaksanakan
  2. Gambar rajah struktur:
Kod pelaksanaan gambar rajah struktur ini:

Peranan yang direalisasikan:

Pengenalan terperinci kepada mod jambatan Java
Peranan yang direalisasikan:

Peranan abstrak:
/**
 * 实视化角色
 */public interface Implemntor {

    public void OperationImpl();}

Peranan abstrak lanjutan:
/**
 * 具体实现化角色
 */public class ConcreteImplementorA implements Implemntor{
    @Override
    public void OperationImpl() {
        System.out.println("具体实现化角色被访问");
    }}

Kelas ujian:
/**
 * 抽象化角色
 */public abstract class Abstraction {

    protected Implemntor implemntor;

    protected Abstraction(Implemntor implemntor){
        this.implemntor = implemntor;
    }

    public abstract void Operation();}

Output :
/**
 * 扩展抽象化角色
 */public class RefinedAbstraction extends Abstraction{

    protected RefinedAbstraction(Implemntor implemntor) {
        super(implemntor);
    }

    public void Operation(){
        System.out.println("扩展抽象化角色被访问");
        implemntor.OperationImpl();
    }}

4 Pelaksanaan kes mod jambatan
public class Test {
    public static void main(String[] args) {

        Implemntor implemntor = new ConcreteImplementorA();
        Abstraction abs = new RefinedAbstraction(implemntor);
        abs.Operation();

    }}

Letakkan pelaksanaan dan pengabstrakan dalam dua peringkat kelas yang berbeza, menjadikan kedua-dua peringkat itu Anda boleh menukar secara bebas. kenderaan

扩展抽象化角色被访问
具体实现化角色被访问
yang memandu di jalan raya Terdapat dua dimensi perubahan di sini,
pelbagai jenis kenderaan

,

jalan juga dibahagikan kepada jalan simen dan jalan asfalt

Rajah kelas:

Kelas pengangkutan:


Spesifik cara pengangkutan: keretaPengenalan terperinci kepada mod jambatan Java

Cara pengangkutan khusus: bas

/**
 * 交通工具类
 */public interface Vehicle {

    public void drive();}

Jalan abstrak:

/**
 * 具体的交通工具:小汽车
 */public class Car implements Vehicle{
    @Override
    public void drive() {
        System.out.println("小汽车");
    }}

Jalan khusus: jalan asfalt

/**
 * 具体的交通工具:大巴车
 */public class Bus implements Vehicle{
    @Override
    public void drive() {
        System.out.println("大巴车");
    }}

Jalan khusus: jalan simen

/**
 * 抽象的路
 */public abstract class Road {

    protected Vehicle vehicle;

    public Road(Vehicle vehicle){
        this.vehicle = vehicle;
    }

    public abstract void driveOnRoad();}

Ujian kelas:

/**
 * 具体的路:油柏路
 */public class UnpavedRoad extends Road{
    public UnpavedRoad(Vehicle vehicle) {
        super(vehicle);
    }

    @Override
    public void driveOnRoad() {

        super.vehicle.drive();
        System.out.println("行驶在油柏路");
    }}

Output:

/**
 * 具体的路:水泥路
 */public class CementRoad extends Road{
    public CementRoad(Vehicle vehicle) {
        super(vehicle);
    }

    @Override
    public void driveOnRoad() {
        super.vehicle.drive();
        System.out.println("行驶在水泥路");
    }}
小汽车
行驶在水泥路
大巴车
行驶在水泥路

5、桥接模式的注意事项

  1. 实现了抽象和实现部分的分离,从而极大的提供了系统的灵活性,让抽象部分和实现部分独立开来,这有助于系统进行分层设计,从而产生更好的结构化系统
  2. 对于系统的高层部分,只需要知道抽象部分和实现部分的接口就可以了,其它的部分由具体业务来完成
  3. 桥接模式替代多层继承方案,可以减少子类的个数,降低系统的管理和维护成本
  4. 桥接模式的引入增加了系统的理解和设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程
  5. 桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围有一定的局限性,即需要有这样的应用场景

6、桥接模式应用场景

对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用.

推荐学习:《java视频教程

Atas ialah kandungan terperinci Pengenalan terperinci kepada mod jambatan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:CSDN. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Mar 17, 2025 pm 05:46 PM

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Mar 17, 2025 pm 05:45 PM

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Mar 17, 2025 pm 05:44 PM

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Mar 17, 2025 pm 05:43 PM

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Mar 17, 2025 pm 05:35 PM

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma