Latest web development tutorials

bridge Mode

Most (mostek) jest stosowany, aby osiągnąć rozdzielenie i abstrakcji, tak że dwa mogą zmieniać się niezależnie od siebie. Tego rodzaju wzorców projektowych należą modelu strukturalnego poprzez dostarczenie abstrakcji uporządkowany i pomost pomiędzy nimi, aby osiągnąć rozdzielenie.

Model ten zakłada jako interfejs pomostową, która umożliwia niezależną jednostką typu klasy interfejsu funkcji. Te dwa typy klas mogą być tak skonstruowane, aby zmieniać i wpływają na siebie nawzajem.

Mamy w poniższych przykładach w celu wykazania Tryb Bridge (Most) Wykorzystanie wzorca. Których można użyć tej samej metody, ale różne klasy abstrakcyjne pomostowe klasę realizacji rysować okręgi o różnych kolorach.

wprowadzenie

Zamiar: abstrakcją i realizacja części separacji, tak, że mogą się zmieniać niezależnie od siebie.

Główne Rozwiązanie: W różnych okolicznościach mogą ulec zmianie, klasa dziedziczenie może spowodować wybuch, nie jest elastyczna rozbudowa.

Kiedy stosować: Wdrażanie systemu klasyfikacji może mieć wiele kątów, każdy kąt może się zmienić.

Jak naprawić: umieścić klasyfikacja ta multi-angle oddzielone, a więc są niezależne od zmian, zmniejszyć sprzężenie pomiędzy nimi.

Kod klawisza: Klasa zależna abstrakcyjne implementacja klasy.

Przykłady zastosowań: 1, odrodzili się od świni świń Marszałka czaszy reinkarnacja, reinkarnacja ziemskiego mechanizmu jest podzielona na dwa poziomy, a mianowicie: duszy i ciała, byłych odpowiada abstrakcji, która jest równoważna do uzyskania.Stworzenia przez funkcje delegowanie, Call sprawności fizycznej obiektów, takie istoty mogą być dynamicznie zaznaczone. 2, przełącznik na ścianie, można zobaczyć przełącznik jest abstrakcyjne, a nie betonowe rury wewnątrz, jak osiągnąć.

Zalety: 1, abstrakcyjne i uzyskania separacji.2, doskonała skalowalność. 3, wdrażanie szczegóły niewidoczne dla klienta.

Wady: wprowadzenie trybie bridge zwiększy trudności zrozumienia i projektowania systemu, związek zbudowany na polimeryzacji warstwy abstrakcji, domagania się do abstrakcyjnej konstrukcji i programowania.

Scenariusze użycia: 1, jeśli system jest wymagane między abstrakcją a betonowego elementu roli na rolę, aby dodać większą elastyczność, aby uniknąć tworzenia statycznego linku dziedziczenia pomiędzy tymi dwoma poziomami, poprzez tryb mostka tak, że warstwy abstrakcji ustanowienia stosunków.2, dla tych, którzy nie chcą korzystać z systemu jako dziedziczenia wielopoziomowego lub dziedziczenia doprowadziło do gwałtownego wzrostu liczby klas systemowych, tryb bridge ma szczególne zastosowanie. 3, klasa istnieją dwa niezależne wymiary zmienić, a te dwa wymiary muszą zostać rozszerzony.

Uwaga: W przypadku zmianydwóch niezależnych wymiarów, korzystając z trybu bridge łatwe do zrobienia.

realizacja

Mamy jako pomost interfejsuDrawAPIi wdrożoneDrawAPIklasy podmiot interfejsRedCircle,GreenCircle.Kształtjest klasą abstrakcyjną, obiekt korzystanieDrawAPI.BridgePatternDemo, nasze zajęcia pokazoweklasa Shapesłuży do rysowania okręgów o różnych kolorach.

Tryb Most diagram UML

Etap 1

Tworzenie mostu, która implementuje interfejs.

DrawAPI.java

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

Etap 2

Załóż podmiot realizacji pomostowego realizacjęDrawAPIklasy interfejsu.

RedCircle.java

public class RedCircle realizuje DrawAPI {
   @Override
   public void drawCircle (Promień int, int x, int y) {
      System.out.println ( "Rysunek Okrąg [kolor: czerwony, promień"
         Promień + + "x" + x + "" + r + "]");
   }
}

GreenCircle.java

public class GreenCircle realizuje DrawAPI {
   @Override
   public void drawCircle (Promień int, int x, int y) {
      System.out.println ( "Rysunek Okrąg [kolor: zielony, promień"
         Promień + + "x" + x + "" + r + "]");
   }
}

etap 3,

DrawAPIużyciu interfejs do tworzenia klasy abstrakcyjnejkształt.

Shape.java

public abstract class Shape {
   chronione DrawAPI drawAPI;
   chroniony Shape (DrawAPI drawAPI) {
      this.drawAPI = drawAPI;
   }
   public abstract void draw ();	
}

Etap 4

Tworzenie klasy podmiotimplementujeinterfejsShape.

Circle.java

public class Koło rozciąga Shape {
   private int x, y, promień;

   Koło publicznych (int x, int y, int promień DrawAPI drawAPI) {
      Super (drawAPI);
      this.x = x;  
      this.y = Y;  
      this.radius = promień;
   }

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

Etap 5

Korzystanie z klasyShapeiDrawAPIrysować okręgi o różnych kolorach.

BridgePatternDemo.java

{public class BridgePatternDemo
   public static void main (String [] args) {
      Kształt redCircle = new okręgu (100100, 10, nowa RedCircle ());
      Kształt greenCircle = new okręgu (100100, 10, nowa GreenCircle ());

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

Etap 6

Sprawdź, czy wyjście.

Rysunek grono [kolor: czerwony, Promień: 10 x: 100, 100]
Rysunek grono [kolor: zielony, promień: 10, X: 100, 100]