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.
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:
Penerangan gambar rajah kelas prinsip:
- Kelas pelanggan: Mod jambatan Pemanggil
- Kelas abstrak (Abstraksi): mengekalkan Pelaksana/iaitu, kelas pelaksanaannya ConcretelmplementorA...keduanya berada dalam perhubungan gabungan, dan Abstraksi bertindak sebagai jambatan
- RehinedAbstraction: ialah subkelas Abstraksi kelas abstrak lmplementor: antara muka kelas pelaksanaan tingkah laku
- ConcretelmplementorA/B: kelas pelaksanaan konkrit tingkah laku
- 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- Mematuhi prinsip sintesis dan penggunaan semula
- Butiran pelaksanaan adalah telus kepada pelanggan
- Kelemahan:
3. Struktur mod jambatan
- Corak jambatan merangkumi peranan utama berikut:
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- 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
- Gambar rajah struktur:
Peranan yang direalisasikan:
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 asfaltRajah kelas:
Kelas pengangkutan:
Spesifik cara pengangkutan: kereta
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、桥接模式的注意事项
- 实现了抽象和实现部分的分离,从而极大的提供了系统的灵活性,让抽象部分和实现部分独立开来,这有助于系统进行分层设计,从而产生更好的结构化系统
- 对于系统的高层部分,只需要知道抽象部分和实现部分的接口就可以了,其它的部分由具体业务来完成
- 桥接模式替代多层继承方案,可以减少子类的个数,降低系统的管理和维护成本
- 桥接模式的引入增加了系统的理解和设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程
- 桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围有一定的局限性,即需要有这样的应用场景
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!

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

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

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

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]

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


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

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 terkini

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma