Das beste Intercepting Filtermuster-Tutorial im Jahr 2024. In diesem Tutorial können Sie Realisierung,Schritt 1,Schritt 2,Schritt 3,Schritt 4,Schritt 5,Schritt 6,Schritt 7,Schritt 8, lernen

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
Intercepting Filtermuster
10/30