Latest web development tutorials

wzór państwa

W trybie państwowej (Wzór państwa), zachowanie klasy opiera się na jego status zmienił. Tego rodzaju wzorców projektowych należą wzorców zachowań.

W modelu państwa, możemy tworzyć obiekty i rozmaite stany behawioralne wraz ze zmianą stanu obiektów zmienione reprezentacji obiektu kontekstu.

wprowadzenie

Intencja: Pozwala naobiekt, aby zmienić jego zachowanie się w stanie wewnętrznego zostanie zmieniony, pojawia się obiekt do modyfikacji swojej klasie.

Głównie do rozwiązania: Zachowanie obiektu zależy od jego stanu (atrybuty), i można go zmieniać w zależności od jego związanych państwowego zmiany zachowań.

Kiedy stosować: Kod zawiera dużą liczbę obiektów związanych ze statusem instrukcji warunkowych.

Jak naprawić: status poszczególnych klas abstrakcyjne zewnątrz.

Kod klawisza: interfejs tryb sterowania zazwyczaj tylko jedna metoda.Stan interfejsu, który ma jeden lub więcej metod. Co więcej, metoda trybie stanu wdrażania klasy, zazwyczaj wartości zwracanej, albo zmienić wartość zmiennej instancji. Oznacza to, że państwo i stan modelu obiektowego jest na ogół istotne. Implementacja metody klasy mają różne funkcje, metody interfejsu pokryte. tryb stanu i trybu poleceń samo może być również stosowany do usuwania innych warunków if ... else wyboru.

Przykłady zastosowań: 1, grając koszykarza może mieć normalnego stanu, a nie stanem normalnym i nienormalnym stanie.2, Marquis Yi dzwonów Zeng, The 'clock jest abstrakcyjny interfejs "," zegar A "i inne specyficzne stan, specyficzne środowisko" Bianzhong' (Context).

Zalety: 1, obudowuje zasady transformacji.2, wyliczyć możliwych stanów przed stanem wyliczenie musi określić status gatunku. 3, wszystkie z zachowań związanych państwowego w klasie, można łatwo dodać nowy stan, tylko trzeba zmienić stan obiektu może zmienić zachowanie obiektów. 4, dzięki czemu państwa stan logiczny przejście obiektu w jednym, a nie jeden wielki blok instrukcji warunkowych. 5, umożliwia wielu obiektów udostępnić obiekt stanu środowiska, a tym samym zmniejszenie liczby przedmiotów w systemie.

Wady: 1, wzór stan użytkowania będzie się zwiększać liczbę klas i obiektów systemowych.2, konstrukcja i implementacja wzorca państwowego są bardziej skomplikowane, jeśli są stosowane niewłaściwie może spowodować zamieszanie strukturę programu i kod. 3, wsparcie dla wzorca państwowego "zasada otwarte-zamknięte" nie jest bardzo dobra, można przełączyć stan modelu państwa, dodając nowe klasy trzeba zmodyfikować status osoby odpowiedzialne za przejściami państwowych kodu źródłowego, lub nie może przełączyć się do nowego stanu i modyfikować klasa akt stanu należy również zmodyfikować kod źródłowy odpowiedniej klasy.

Scenariusze użycia: 1, z zachowaniem zmiany stanu i zmian sceny.2, zastąpi oświadczenie skok warunkowy.

Uwaga: W przypadku korzystania z ograniczonej zachowanie członkowskim przez trybie stanu, a państwo nie ma więcej niż pięć lat.

realizacja

Stworzymy interfejsu statusu podmiotu i implementacja interfejsu klasypaństwaczłonkowskiego.Kontekstjest klasa z pewnego stanu.

StatePatternDemo pokazujemyużycie klasy i statusu obiektówKontekstContext wykazać zmianę zachowań w sytuacji zmiany.

Stan wzór diagram UML

Etap 1

Tworzenie interfejsu.

State.java

public interface State {
   public void doAction(Context context);
}

Etap 2

Tworzenie klasy podmiotu, który implementuje interfejs.

StartState.java

public class StartState realizuje państwo {

   public void doAction (kontekstowe Context) {
      System.out.println ( "Gracz jest w stanie startowym");
      context.setState (this);	
   }

   public String toString () {
      powrócić "Start Państwo";
   }
}

StopState.java

public class StopState implements State {

   public void doAction(Context context) {
      System.out.println("Player is in stop state");
      context.setState(this);	
   }

   public String toString(){
      return "Stop State";
   }
}

etap 3,

Tworzenie klasykontekstu.

Context.java

public class Context {
   prywatny Stan państwa;

   Kontekst publicznego () {
      state = null;
   }

   public void setstate (stan państwa) {
      this.state = stan;		
   }

   publicznego państwa getstate () {
      stan powrotu;
   }
}

Etap 4

Użyjkontekstowego,aby zobaczyć zachowanie, gdy stan zmienia zmieniastan.

StatePatternDemo.java

{public class StatePatternDemo
   public static void main (String [] args) {
      Context context = new Context ();

      StartState startState = new StartState ();
      startState.doAction (kontekstu);

      System.out.println (context.getState () toString ().);

      StopState stopState = new StopState ();
      stopState.doAction (kontekstu);

      System.out.println (context.getState () toString ().);
   }
}

Etap 5

Sprawdź, czy wyjście.

Odtwarzacz jest w stanie startowym
Rozpocznij State
Odtwarzacz jest w stanie zatrzymania
Zatrzymaj State