Überblick
Brückenmodus Ein Strukturmodell, das sich hauptsächlich befasst: Aufgrund der tatsächlichen Bedürfnisse hat eine Klasse zwei oder mehr dimensionale Änderungen. Wenn nur die Vererbung verwendet wird, wird dieses Bedürfnis nicht erreicht, oder das Design wird ziemlich aufgebläht.
Der Brückenmodus soll die sich ändernden Teile abstrahieren, die sich ändernden Teile von der Hauptklasse trennen und so die Änderungen in mehreren Dimensionen vollständig unterscheiden. Schließlich wird eine Verwaltungsklasse bereitgestellt, um Änderungen in verschiedenen Dimensionen zu kombinieren, und diese Kombination wird verwendet, um die Bedürfnisse des Geschäfts zu erfüllen.
UML -Strukturdiagramm
Codebeispiel
Paketinterview; Schnittstellenimplementierer {void operationImpl ();} Abstract Class Abstract {Protected Implementor Implentor; öffentliches Abstract (Implementierer -Implementierer) {this.implementor = Implementierer; } public void operation () {Implementor.operationImpl (); }} Klasse ConcreteImplementora implementiert Implementierer {@Override public void operationImpl () {System.out.println ("Spezifische Implementierung a"); }} Klasse ConcreteImplementorB implementiert Implementierer {@Override public void operationImpl () {System.out.println ("Spezifische Implementierung B"); }} class RefinedAbStraction erweitert abstrakt {public RefinedAbstraction (Implementierer -Implementierer) {Super (Implementierer); } public void otherOperation () {System.out.println ("Andere Operationen"); }} public class Achtung {public static void main (String arg []) {Implementierer Implementierer = new ConcreteImplementora (); REFINEDABRAKTION -Abstraktion = neuer raffinedAbstraction (Implementierer); Abstraktion.operation (); Abstraktion.otheroperation (); }}Szenarien verwenden
1. Wenn Sie keine feste Bindungsbeziehung in den Abstraktions- und Implementierungsteilen annehmen möchten, können Sie den Bridge -Modus verwenden, um die Abstraktions- und Implementierungsteile zu trennen, und dann die für die Abstraktion während des Programmvorgangs erforderlichen spezifischen Implementierungen dynamisch festlegen, und Sie können auch die spezifischen Implementierungen dynamisch schalten.
2. Wenn sowohl der abstrakte Teil als auch der Implementierungsteil erweitert werden sollten, kann ein Brückenmodus verwendet werden, damit der abstrakte Teil und der Implementierungsteil unabhängig geändert werden können, sodass die Erweiterung flexibel erweitert werden kann, anstatt sich zusammenzuregen. Eine Seite der Ausdehnung kann die andere Seite beeinflussen.
3. Wenn Sie teilweise Änderungen implementieren möchten, wirkt sich dies nicht auf den Kunden aus. Sie können den Brückenmodus verwenden. Der Kunde führt eine abstraktorientierte Schnittstelle aus. Die Änderungen des Teils können unabhängig vom abstrakten Teil sein und sich nicht auf den Kunden auswirken. Es kann auch gesagt werden, dass es für den Kunden transparent ist.
V. In diesem Fall können Sie in Betracht ziehen, einen Brückenmodus zu verwenden, um die Gründe für die Änderungen der Funktionen zu analysieren, um festzustellen, ob sie in verschiedene Abmessungen unterteilt werden können, und sie dann durch den Brückenmodus trennen, um die Anzahl der Unterklassen zu verringern.
Wenn ein System mehr Flexibilität zwischen den konstruierten abstrakten und konkretisierten Rollen hinzufügen muss, vermeiden Sie es, statische Verbindungen zwischen den beiden Ebenen zu erstellen.
Sowohl abstrakte und konkrete Zeichen sollten in der Lage sein, unterklassifiziert zu werden. In diesem Fall kann das Brückenmuster verschiedene abstrakte und konkrete Rollen flexibel kombinieren und unabhängig erweitern.
Alle Änderungen im Design erfordern, dass die Implementierungsrolle den Kunden nicht beeinflussen sollte oder dass die Änderungen der Implementierungsrolle für den Kunden vollständig transparent sind.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.