Rumah >Java >javaTutorial >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.
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:
Pengasingan abstraksi dan pelaksanaan, kebolehskalaan yang kukuh
Mematuhi prinsip pembukaan dan penutup3. Struktur mod jambatan
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 gabunganPeranan 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,
Rajah 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("行驶在水泥路"); }}
小汽车 行驶在水泥路 大巴车 行驶在水泥路
对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用.
推荐学习:《java视频教程》
Atas ialah kandungan terperinci Pengenalan terperinci kepada mod jambatan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!