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.
1. Trennung von Abstraktion und Implementierung, starke Skalierbarkeit
2. Einhaltung des Öffnungs- und Schließprinzips
#🎜 🎜#3 , Beachten Sie das Prinzip der synthetischen Wiederverwendung4. Die Implementierungsdetails sind für Kunden transparentNachteileDa 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 PointSie können den Abstraktionsteil vom Implementierungsteil trennen, die Vererbungsbeziehung zwischen den beiden aufheben und stattdessen die Kombinationsbeziehung verwenden. Bridge-Modus-ImplementierungFall: Blue Rabbit Palace Master kauft einen RockDer 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 FarbeFarbschnittstelle, deklariert eine abstrakte Methode show()public interface Color { void show(); }gelbgelb Klasse und implementiert die Farbschnittstelle
public class ColorYellow implements Color { @Override public void show() { System.out.println("黄色的"); } }# 🎜🎜#红
public class ColorRed implements Color { @Override public void show() { System.out.println("红色的"); } }
skirt
abstract class Qun { protected Color color; protected Qun() { } protected Qun(Color color) { this.color = color; } public abstract void shows(); }
public class QunChang extends Qun { protected QunChang() { } protected QunChang(Color color) { super(color); } @Override public void shows() { System.out.println("长裙"); color.show(); } }
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(); } }
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!