Rumah >Java >javaTutorial >Pengenalan terperinci kepada mod jambatan Java

Pengenalan terperinci kepada mod jambatan Java

WBOY
WBOYke hadapan
2022-05-01 09:00:232608semak imbas

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.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam