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.
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