Latest web development tutorials

Intercepting Filtermuster

Filtermuster Intercepting (Intercepting Filtermuster) zum Anfordern einer Anwendung oder als Antwort eine Vorverarbeitung / Nachbearbeitung zu tun. Definieren Sie den Filter und vor dem Antrag auf die praktische Anwendung der Zielanwendung auf Anfrage. Die Filter können die Authentifizierung / Autorisierung / Protokollierung oder Tracking-Anforderung, dann die Anforderung an den entsprechenden Handler tun. Im Folgenden ist ein Unternehmen von diesem Design-Muster.

  • Filter (Filter) - Filter vor oder nach der Erledigung des Ersuchens - Request - Handler bestimmte Aufgaben auszuführen.
  • Filterkette (Filterkette) - Filterkette mit einer Vielzahl von Filtern und die Umsetzung dieser Filter auf Ziel in einer definierten Reihenfolge.
  • Target - Ziel ist das Objekt Request - Handler.
  • Filter - Manager (Filter-Manager) -Filter - Manager Filter und Filterkette.
  • Client (Client) - Client - Objekt zu Zielobjekt die Anfrage zu senden.

Realisierung

Wir schaffenfilter,FilterManager, Target, Client - Entitäten als verschiedene Objekte darstellt.AuthenticationFilterunddebugfilterrepräsentieren Entitäten Filter.

InterceptingFilterDemo,zeigen wir die Verwendung vonClient- Klasse , um die Intercepting Filter Design - Muster zu demonstrieren.

Intercepting Filtermuster UML-Diagramm

Schritt 1

Filter erstellen Schnittstelle Filter.

Filter.java

public interface Filter {
   public void execute (String Anfrage);
}

Schritt 2

Erstellen von Entity-Filter.

AuthenticationFilter.java

public class AuthenticationFilter implementiert Filter {
   public void execute (String Anfrage) {
      System.out.println ( "Authentifizieren Anfrage:" + Anfrage);
   }
}

DebugFilter.java

public class debugfilter implementiert Filter {
   public void execute (String Anfrage) {
      System.out.println ( "Anforderungsprotokoll:" + Anfrage);
   }
}

Schritt 3

Ziel erstellen.

Target.java

public class Ziel {
   public void execute (String Anfrage) {
      System.out.println ( "Bearbeitung der Anfrage:" + Anfrage);
   }
}

Schritt 4

Erstellen Sie eine Filterkette.

FilterChain.java

Import java.util.ArrayList;
Import java.util.List;

public class filter {
   private List <Filter> Filter = new Arraylist <Filter> ();
   Privatziel Ziel;

   public void addFilter (Filter-Filter) {
      filters.add (Filter);
   }

   public void execute (String Anfrage) {
      für (Filter Filter: Filter) {
         filter.execute (Anfrage);
      }
      target.execute (Anfrage);
   }

   public void setTarget (Target Target) {
      this.target = Ziel;
   }
}

Schritt 5

Erstellen Sie Filter-Manager.

FilterManager.java

public class FilterManager {
   Filterfilter;

   public FilterManager (Target Target) {
      filter = new filter ();
      filterChain.setTarget (Ziel);
   }
   public void setFilter (Filter-Filter) {
      filterChain.addFilter (Filter);
   }

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

Schritt 6

Erstellen Sie eine Client-Client.

Client.java

public class Kunde {
   FilterManager filterManager;

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

   public void sendrequest (String Anfrage) {
      filterManager.filterRequest (Anfrage);
   }
}

Schritt 7

Verwenden SieClientden Intercepting Filter Design - Muster zu demonstrieren.

FrontControllerPatternDemo.java

public class InterceptingFilterDemo {
   public static void main (String [] args) {
      FilterManager filterManager = new FilterManager (neu Target ());
      filterManager.setFilter (neu AuthenticationFilter ());
      filterManager.setFilter (neu debugfilter ());

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

Schritt 8

Stellen Sie sicher, ausgegeben.

Authentifizieren Anfrage: HOME
Anforderungslog: HOME
Bearbeitung der Anfrage: HOME