Pengenalan 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.
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
扩展抽象化角色被访问 具体实现化角色被访问
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!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4
