Heim  >  Artikel  >  Java  >  So implementieren Sie den Bridge-Modus des Java-Entwurfsmusters

So implementieren Sie den Bridge-Modus des Java-Entwurfsmusters

WBOY
WBOYnach vorne
2023-05-16 12:52:061158Durchsuche

Was ist das Bridge-Muster?

Das Bridge-Muster ist wie folgt definiert: Trennung von Abstraktion und Implementierung, sodass sie sich unabhängig voneinander ändern können. Die Implementierung erfolgt durch die Verwendung von Kombinationsbeziehungen anstelle von Vererbungsbeziehungen, wodurch der Kopplungsgrad der beiden variablen Dimensionen Abstraktion und Implementierung verringert wird.

Vorteile

1. Trennung von Abstraktion und Implementierung, starke Skalierbarkeit

2. Einhaltung des Öffnungs- und Schließprinzips

#🎜 🎜#3 , Beachten Sie das Prinzip der synthetischen Wiederverwendung

4. Die Implementierungsdetails sind für Kunden transparent

Nachteile

Da die Aggregationsbeziehung besteht Da sie auf der abstrakten Ebene angesiedelt sind, müssen Entwickler beim Entwerfen und Programmieren für die Abstraktion zwei sich unabhängig voneinander ändernde Dimensionen im System korrekt identifizieren können, was die Schwierigkeit erhöht, das System zu verstehen und zu entwerfen.

Knowledge Point

Sie können den Abstraktionsteil vom Implementierungsteil trennen, die Vererbungsbeziehung zwischen den beiden aufheben und stattdessen die Kombinationsbeziehung verwenden.

Bridge-Modus-Implementierung

Fall: Blue Rabbit Palace Master kauft einen Rock

Der Rock hat zwei Dimensionen, nämlich Farbe und Stil.

Die Farben sind Gelb und Rot;

Stile sind in lange Röcke und kurze Röcke unterteilt; 🎜🎜#Rolle der erweiterten Abstraktion (verfeinerte Abstraktion): Gelb und Rot

Rolle des Implementierers: Stil

Rolle des konkreten Implementierers: Lange Röcke und Röcke

Farbe

Farbschnittstelle, deklariert eine abstrakte Methode show()

public interface Color {
    void show();
}

gelb

gelb Klasse und implementiert die Farbschnittstelle

public class ColorYellow implements Color {
    @Override
    public void show() {
        System.out.println("黄色的");
    }
}
# 🎜🎜#红

Rote Klasse und Implementierung der Farbschnittstelle
public class ColorRed implements Color {
    @Override
    public void show() {
        System.out.println("红色的");
    }
}

skirt

Rockklasse, Deklarieren Sie ein Farbattribut und eine abstrakte Methode#🎜 🎜#
abstract class Qun {
    protected Color color;
    protected Qun() {
    }
    protected Qun(Color color) {
        this.color = color;
    }
    public abstract void shows();
}
长skirt

Erben Sie die Rockklasse und implementieren Sie die abstrakte Methode

public class QunChang extends Qun {
    protected QunChang() {
    }
    protected QunChang(Color color) {
        super(color);
    }
    @Override
    public void shows() {
        System.out.println("长裙");
        color.show();
    }
}

小skirt

Erben Sie die Rockklasse und Implementieren Sie die abstrakte Methode
public class QunDuan extends Qun {
    protected QunDuan() {
    }
    protected QunDuan(Color color) {
        super(color);
    }
    @Override
    public void shows() {
        System.out.println("短裙");
        color.show();
    }
}
Test

new Ein rotes Objekt wird als Parameter an den langen Rock übergeben.
public class Demo {
    public static void main(String[] args) {
        Color color = new ColorRed();
        Qun qun = new QunChang(color);
        qun.shows();
    }
}

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Bridge-Modus des Java-Entwurfsmusters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen