Latest web development tutorials

Tryb Strategia

W trybie Strategy (Strategia wzorzec), aktu klasy lub algorytm może być zmieniana w czasie wykonywania. Tego rodzaju wzorców projektowych należą wzorców zachowań.

W trybie strategicznym, tworzymy przedmioty i wiele behawioralnych strategii zmian jako przedmiotu polityki, aby zmienić reprezentację obiektu kontekstu. Obiekt zasad, aby zmienić obiekt kontekstu wykonania algorytmu.

wprowadzenie

Zamiar: Definicja rodziny algorytmów, hermetyzacji każdy je i uczynić je zamiennie.

Przede wszystkim rozwiązania: W przypadku wielokrotnego stosowania w przypadku podobnego algorytmu ... wnoszonego skomplikowana i trudna w utrzymaniu.

Kiedy stosować: system ma wiele, wiele kategorii, a ich odróżnić tylko ich natychmiastowe zachowanie.

Jak naprawić: czy te algorytmy w pakiet klasę arbitralnie wymienić.

Kod klawisza: zaimplementować ten sam interfejs.

Przykłady zastosowań: 1, dobre pomysły Zhuge Liang, każdy zestaw jest strategia.2, podróże sposób podróżowania, wybrać się jeździć na rowerze, samochodem, każdy sposób podróżowania jest strategia. 3, JAVA AWT LayoutManager.

Zalety: 1, algorytm może dowolnie przełączać.2, w celu uniknięcia stosowania wielokrotnego warunkowy. 3, dobra skalowalność.

Wady: 1, strategia będzie wzrastać.2, wszystkie klasy muszą narażenia polityki zagranicznej.

Scenariusze użycia: 1, jeśli nie jest to system, w którym wielu klasach różnica między nimi tylko w ich zachowaniu, a następnie za pomocą wzoru strategia może dynamicznie wybrać pozwolić czynu w wielu zachowań obiektu.2, system musi dynamicznie wybrać jedną z kilku algorytmów. 3. Jeśli obiekt ma wiele zachowań, jeśli nie jest to właściwy tryb, czynności te musiały korzystać z wielu warunków są wybrane oświadczenie do osiągnięcia.

Uwaga: Jeśli zasady systemu z więcej niż czterech, należy rozważyć zastosowanie trybu mieszanego, aby rozwiązać problem klasie polityki ekspansji.

realizacja

Stworzymy dobrze zdefiniowanego interfejsu i wdrażania działania interfejsuStrategiaStrategia Strategia podmiotu.Kontekstjest stosowanie pewnej klasy polityki.

StrategyPatternDemo,nasze zajęcia demonstracyjne wykorzystujące ContextKonteksti polityki przedmiotów wykazać zachowanie, gdy jest używany do konfigurowania lub zmiany zmiany polityki.

Strategia wzór diagram UML

Etap 1

Tworzenie interfejsu.

Strategy.java

Strategia {public interface
   public int doOperation (int num1, int num2);
}

Etap 2

Tworzenie klasy podmiotu, który implementuje interfejs.

OperationAdd.java

public class OperationAdd wdraża Strategię {
   @Override
   public int doOperation (int num1, int num2) {
      powrót num1 + num2;
   }
}

OperationSubstract.java

public class OperationSubstract wdraża Strategię {
   @Override
   public int doOperation (int num1, int num2) {
      powrót num1 - num2;
   }
}

OperationMultiply.java

public class OperationMultiply wdraża Strategię {
   @Override
   public int doOperation (int num1, int num2) {
      powrót num1 * num2;
   }
}

etap 3,

Tworzenie klasykontekstu.

Context.java

public class Context {
   Strategia Strategia prywatne;

   Kontekst publicznych (strategia Strategia) {
      this.strategy = strategii;
   }

   public int executeStrategy (int num1, int num2) {
      powrót strategy.doOperation (num1, num2);
   }
}

Etap 4

Użyjkontekstowego,aby zobaczyć, kiedy zmieniaStrategiaStrategia zmianyzachowania.

StrategyPatternDemo.java

{public class StrategyPatternDemo
   public static void main (String [] args) {
      Kontekst Kontekst = new Context (nowa OperationAdd ());		
      System.out.println ( "10 + 5 =" + context.executeStrategy (10, 5));

      context = new Context (nowa OperationSubstract ());		
      System.out.println ( "10 - 5 =" + context.executeStrategy (10, 5));

      context = new Context (nowa OperationMultiply ());		
      System.out.println ( "10 * 5 =" + context.executeStrategy (10, 5));
   }
}

Etap 5

Sprawdź, czy wyjście.

10 + 5 = 15
10--5 = 5
10 * 5 = 50