Latest web development tutorials

command Mode

Command Mode (Wzór poleceń) jest wzornictwo oparte na danych, należy do typu modelu. Komenda Zapytanie w postaci pakietów w obiekcie, i przeszedł do obiektu wywołującego. Patrząc obiektu połączenie może przetwarzać odpowiedni obiekt polecenia i komendy są przekazywane do odpowiedniego obiektu, który wykonuje polecenia.

wprowadzenie

Zamiar: enkapsulacji żądanie jako obiektu, dzięki czemu można korzystać z różnych żądań parameterize klientów.

Głównie do rozwiązania: w systemie oprogramowania, zachowanie wnioskodawcy i zachowania zazwyczaj osiągnąć relację ściśle powiązane, ale niektóre sytuacje, takie jak konieczność przeprowadzenia nagrywanie, cofnąć lub ponowić i innych przetwarzania transakcji, to nie do odparcia ściśle powiązane zmiany w projekcie nie jest właściwe.

Kiedy stosować: W niektórych przypadkach, takich jak na zachowanie "rekord, Undo / Redo, transakcje" i pozostałe zabiegi, takie zmiany nie mogą oprzeć się mocno sprzęgła jest nieodpowiednia.W tym przypadku, jak będzie "zachowanie wnioskodawca" i "zachowanie realizator" oddzielenie? Działa jako zbiór abstrakcyjnych obiektów, luźne połączenie może być osiągnięty między nimi.

Jak naprawić: Prowadzony przez odbiorcę, aby zadzwonić do osoby dzwoniącej, w celu: odbiornik rozmówca → → poleceń.

Kod klawisza: definicja trzech ról: 1, otrzymał wykonania przedmiotu rzeczywistego Command 2, 3, polecenia wywołującego obiektów za pomocą polecenia wpis

Przykłady zastosowań: rozpórki 1 rdzeń sterownik ActionServlet w działaniu jest tylko jeden, odpowiednik wywołującego, podczas gdy warstwa modelu klasy będą tak różne aplikacje mają różne klasy modelu równoważne betonu Command.

Zalety: 1, układ zmniejsza stopień sprzężenia.2, nowe polecenia można łatwo dodać do systemu.

Wady: tryb poleceń może spowodować, że niektóre systemy mają zbyt wiele specyficzną klasę poleceń.

Scenariusz Zastosowanie: że komenda lokalny może korzystać z trybu poleceń, takich jak: 1, GUI każdy przycisk jest poleceniem.2, symulowane CMD.

Uwaga: System musi obsługiwać polecenia Cofnij (Undo) oraz operacja odzyskiwania (Redo) operacji, można rozważyć użycie trybu poleceń, patrz tryb poleceń rozszerzony.

realizacja

Najpierw powstał jako interfejs poleceń nazamówienie,a następnie utworzyć klasę ŻądanieImage.Podmiot ten oraz polecenie zajęciaBuyStockSellStock,Orderimplementuje interfejs, wykona rzeczywiste przetwarzanie poleceń. Utworzony w klasieBrokerpołączeńobiektu,który może akceptować zleceń i zamówień.

ObiektBrokerprzy użyciu trybu poleceń, w oparciu o rodzaj polecenia, aby określić, które sprzeciwiają się wykonywać polecenia, które.CommandPatternDemo,nasze zajęcia demonstracyjne wykorzystujące klasęBrokerwykazać tryb poleceń.

Tryb poleceń diagram UML

Etap 1

Tworzenie interfejsu poleceń.

Order.java

Zamówienie {public interface
   void execute ();
}

Etap 2

Utwórz klasę żądania.

Stock.java

public class Image {
	
   private String name = "abc";
   private int liczba = 10;

   public void buy () {
      System.out.println ( "Zdjęcie [Nazwa:" + nazwa + ", 
         Ilość: "+ ilość +"] kupił ");
   }
   public void Sprzedam () {
      System.out.println ( "Zdjęcie [Nazwa:" + nazwa + ", 
         Ilość: "ilość +"] sprzedane ");
   }
}

etap 3,

Tworzenie klasy podmiotZamówienieimplementuje interfejs.

BuyStock.java

public class BuyStock realizuje Order {
   Zdjęcie abcStock prywatne;

   publicznego BuyStock (Zdjęcie abcStock) {
      this.abcStock = abcStock;
   }

   public void execute () {
      abcStock.buy ();
   }
}

SellStock.java

public class SellStock realizuje Order {
   Zdjęcie abcStock prywatne;

   SellStock publicznych (Zdjęcie abcStock) {
      this.abcStock = abcStock;
   }

   public void execute () {
      abcStock.sell ();
   }
}

Etap 4

Tworzenie połączeń dowodzenia klasie.

Broker.java

import java.util.ArrayList;
import java.util.List;

   {public class Broker
   Lista prywatna <Order> orderList = new ArrayList <Order> (); 

   public void takeOrder (zamawiania) {
      orderList.add (na zamówienie);		
   }

   public void placeOrders () {
      for (Zamówienie Zamówienie: orderList) {
         order.execute ();
      }
      orderList.clear ();
   }
}

Etap 5

Użyj klasy Broker przyjmować i wykonywać polecenia.

CommandPatternDemo.java

{public class CommandPatternDemo
   public static void main (String [] args) {
      Zdjęcie abcStock = new Image ();

      BuyStock buyStockOrder = new BuyStock (abcStock);
      SellStock sellStockOrder = new SellStock (abcStock);

      Broker broker broker = new ();
      broker.takeOrder (buyStockOrder);
      broker.takeOrder (sellStockOrder);

      broker.placeOrders ();
   }
}

Etap 6

Sprawdź, czy wyjście.

Zdjęcie [Nazwa: ABC, Ilość: 10] kupiło
Zdjęcie [Nazwa: ABC, Ilość: 10] sprzedane