Latest web development tutorials

Przechwytywanie wzór filtru

Przechwytywanie wzór Filter (Filtr przechwytujące wzorzec) Wnioski o wydanie wniosku lub w odpowiedzi, aby zrobić kilka wstępnego przetwarzania / post-processing. Definiowanie filtru, a przed złożeniem wniosku do praktycznego stosowania docelowej aplikacji na żądanie. Filtry mogą zrobić uwierzytelniania / zezwolenie / rejestrowanie lub prośbę śledzenia, a następnie wniosek do właściwej obsługi. Poniższa jest podmiotem tego wzorca projektowego.

  • Filtr (Filter) - Filtr przed lub po wykonaniu wniosku obsługi żądania do wykonywania określonych zadań.
  • Łańcuch Filter (Filtr Chain) - łańcuch filtrów z wieloma filtrami i wdrożenia tych filtrów na cel w określonej kolejności.
  • Target - docelowa jest procedura obsługi żądania obiektu.
  • Filter Manager (Menedżer filtrów) - filtry menedżera filtrów i łańcucha filtrów.
  • Client (klient) - obiekt klientado systemu TARGET obiektu, aby wysłać zgłoszenie.

realizacja

StworzymyfilterChain,FilterManager, Target, Klient oświadcza podmioty jako różnych obiektów.AuthenticationFilteriDebugFilterstanowią filtry podmiotów.

InterceptingFilterDemo pokazujemyużycie klasyClientzademonstrowania przechwytującym wzorzec projektowania filtrów.

Przechwytywanie wzór filtru diagram UML

Etap 1

Utwórz filtr interfejsu filtr.

Filter.java

Filtr {public interface
   public void execute (wniosek string);
}

Etap 2

Utwórz filtr podmiotu.

AuthenticationFilter.java

public class AuthenticationFilter realizuje Filter {
   public void execute (wniosek string) {
      System.out.println ( "Uwierzytelnianie żądania:" + request);
   }
}

DebugFilter.java

public class DebugFilter realizuje Filter {
   public void execute (wniosek string) {
      System.out.println ( "Żądanie dziennika:" + request);
   }
}

etap 3,

Tworzenie docelowy.

Target.java

{public class docelowa
   public void execute (wniosek string) {
      System.out.println ( "Wykonując zapytanie:" + request);
   }
}

Etap 4

Tworzenie łańcucha filtrów.

FilterChain.java

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

{public class filterChain
   Lista Prywatne <Filtr> Filtry = new ArrayList <Filtr> ();
   prywatne target docelowy;

   public void addFilter (Filtr) {
      filters.add (filtr);
   }

   public void execute (wniosek string) {
      dla (Filtr: Filtry) {
         filter.execute (request);
      }
      target.execute (request);
   }

   public void SetTarget (target docelowy) {
      this.target = docelowy;
   }
}

Etap 5

Utwórz filtr Manager.

FilterManager.java

{public class FilterManager
   FilterChain filterChain;

   publicznego FilterManager (target docelowy) {
      filterChain = new filterChain ();
      filterChain.setTarget (cel);
   }
   public void setFilter (Filtr) {
      filterChain.addFilter (filtr);
   }

   public void filterRequest (request String) {
      filterChain.execute (request);
   }
}

Etap 6

Tworzenie klienta klienta.

Client.java

public class Client {
   FilterManager filterManager;

   public void setFilterManager (FilterManager filterManager) {
      this.filterManager = filterManager;
   }

   public void wyslacwniosek (request String) {
      filterManager.filterRequest (request);
   }
}

Krok 7

Użyjklientado wykazania przechwytując wzorzec projektowania filtrów.

FrontControllerPatternDemo.java

{public class InterceptingFilterDemo
   public static void main (String [] args) {
      FilterManager filterManager = new FilterManager (nowa docelowa ());
      filterManager.setFilter (New AuthenticationFilter ());
      filterManager.setFilter (New DebugFilter ());

      Client client = new Client ();
      client.setFilterManager (filterManager);
      client.sendRequest ( "HOME");
   }
}

Krok 8

Sprawdź, czy wyjście.

Uwierzytelnianie żądania: HOME
Żądanie dziennika: HOME
Wykonywanie żądania: HOME