Latest web development tutorials

Bridge-Modus

Brücke (Bridge) verwendet Entkopplung und Abstraktion zu erreichen, so daß die beiden unabhängig voneinander variieren können. Diese Art von Entwurfsmustern gehören Strukturmodell durch zwischen den beiden Abstraktion strukturiert und überbrücken die Bereitstellung Entkopplung zu erreichen.

Dieses Modell beinhaltet als Brücken Schnittstelle, die ein Unternehmen unabhängig von der Art der Funktion Interface-Klasse ermöglicht. Diese beiden Arten von Klassen können strukturiert sein zu ändern und sich gegenseitig beeinflussen.

Wir durch die folgenden Beispiele den Bridge-Modus (Brücken Pattern) Gebrauch zu demonstrieren. Welche können Sie die gleiche Methode verwenden, aber unterschiedliche abstrakte Klassen Implementierungsklasse Überbrückung Kreise in verschiedenen Farben zu zeichnen.

Einführung

Absicht: eine Abstraktion und Umsetzung eines Teils der Trennung, so dass sie unabhängig voneinander variieren können.

Haupt Lösung: In einer Vielzahl von Umständen ändern kann, Klassenvererbung kann eine Explosion verursachen, es ist nicht flexibel erweiterbar.

Wann verwendet man :Implementieren von Klassifizierungssystem mehrere Winkel aufweisen kann, kann jeder Winkel ändern.

Wie zu beheben: Legen Sie diese Multi-Angle - Klassifizierung getrennt, so dass sie unabhängig von Änderungen, reduzieren Sie die Kopplung zwischen ihnen.

Der Schlüsselcode: abstrakte Klasse Implementierung abhängige Klasse.

Anwendungsbeispiele: 1, wieder geboren von Schwein zu Schwein Marshal Baldachin Reinkarnation, Wiedergeburt des irdischen Mechanismus ist in zwei Ebenen unterteilt, nämlich: die Seele und Körper, die erstere entspricht Abstraktion, die auf den erzielbaren entspricht.Kreaturen durch Delegieren Funktionen, Funktionsaufruf physische Objekte, können solche Kreaturen dynamisch ausgewählt werden. 2, Schalter an der Wand, können Sie den Schalter ist abstrakt, nicht Betonrohr innen zu sehen, wie zu erreichen.

Vorteile: 1, Zusammenfassung und Trennung zu erreichen.2, hervorragende Skalierbarkeit. 3 Details Implementierung für den Client transparent.

Nachteile: die Einführung der Bridge - Modus wird die Schwierigkeit des Verstehens und der Gestaltung des Systems zu erhöhen, die Beziehung Polymerisation auf Abstraktionsschicht aufgebaut, die Entwickler für abstrakte Gestaltung und Programmierung erfordern.

Einsatzszenarien: 1, wenn ein System zwischen Abstraktion und konkreter Rolle Mitglied der Rolle erforderlich , um mehr Flexibilität zur statischen Vererbungsbeziehung zwischen den beiden Ebenen zu vermeiden , zu schaffen, durch den Bridge - Modus , so dass sie Layer - Abstraktion stellen Sie eine Beziehung.2, für diejenigen, die nicht wollen, um das System als Multi-Level-Vererbung oder Erbschaft zu einem starken Anstieg der Zahl der Systemklassen, Bridge-Modus führte zu verwenden, ist besonders anwendbar. 3, eine Klasse gibt es zwei unabhängige Dimensionen des Wandels sind, und diese beiden Dimensionen müssen ausgebaut werden.

Hinweis: Für eineÄnderung von zwei unabhängigen Dimensionen, mit der Bridge - Modus einfach zu tun.

Realisierung

Wir haben alsDrawAPISchnittstelle Brücke und implementiertDrawAPISchnittstelle EntitätsklasseRedCircle,Greencircle.Shapeist eine abstrakte Klasse, die VerwendungDrawAPIObjekt.BridgePatternDemo,unsere Demonstration Klassen verwenden , umdie Shape- Klasse Kreise in verschiedenen Farben zu zeichnen.

Bridge-Modus UML-Diagramm

Schritt 1

Erstellen Sie eine Brücke, die die Schnittstelle implementiert.

DrawAPI.java

public interface DrawAPI {
   public void drawCircle (int Radius, int x, int y);
}

Schritt 2

Legen Sie eine Implementierung Einheit ÜberbrückungDrawAPIUmsetzung der Interface - Klasse.

RedCircle.java

public class RedCircle implementiert DrawAPI {
   @Override
   public void drawCircle (int Radius, int x, int y) {
      System.out.println ( "Drawing Kreis [Farbe: rot, Radius:"
         + Radius + ", x" + x + "," + y + "]");
   }
}

GreenCircle.java

public class Greencircle implementiert DrawAPI {
   @Override
   public void drawCircle (int Radius, int x, int y) {
      System.out.println ( "Drawing Kreis [Farbe: grün, Radius:"
         + Radius + ", x" + x + "," + y + "]");
   }
}

Schritt 3

DrawAPIverwenden Schnittstelle eine abstrakte Klasse -Formzuerstellen.

Shape.java

public abstract class Shape {
   DrawAPI drawAPI geschützt;
   geschützter Form (DrawAPI drawAPI) {
      this.drawAPI = drawAPI;
   }
   public void draw ();	
}

Schritt 4

Erstellen von Entity - Klasse implementiertdie Form- Schnittstelle.

Circle.java

public class Kreis erstreckt Form {
   private int x, y, radius;

   public Kreis (int x, int y, int Radius, DrawAPI drawAPI) {
      super (drawAPI);
      this.x = x;  
      this.y = y;  
      this.radius = Radius;
   }

   public void draw () {
      drawAPI.drawCircle (Radius, x, y);
   }
}

Schritt 5

Mit derShape- Klasse undDrawAPIKreisen in verschiedenen Farben zeichnen.

BridgePatternDemo.java

public class BridgePatternDemo {
   public static void main (String [] args) {
      Form redCircle = new Kreis (100.100, 10, neue RedCircle ());
      Form Greencircle = new Kreis (100.100, 10, neue Greencircle ());

      redCircle.draw ();
      greenCircle.draw ();
   }
}

Schritt 6

Stellen Sie sicher, ausgegeben.

Zeichnung Kreis [Farbe: rot, Radius: 10, x: 100, 100]
Zeichnung Kreis [Farbe: grün, Radius: 10, x: 100, 100]