Intercettare modello del filtro
Intercettare modello del filtro (Intercettazione Pattern filtro) per la richiesta di un'applicazione o in risposta a fare un po 'di pre-elaborazione / post-elaborazione. Definire il filtro, e prima che la richiesta per l'applicazione pratica di destinazione su richiesta. I filtri possono fare autenticazione / autorizzazione / registrazione o richiesta di monitoraggio, quindi la richiesta al gestore appropriato. Di seguito è un'entità di questo modello di progettazione.
- Filter (Filtro) - filtro prima o dopo l'esecuzione del gestore, richiesta per eseguire alcuni compiti.
- catena di filtri (Filtro Chain) - catena dei filtri con una pluralità di filtri, e l'attuazione di questi filtri sul bersaglio in una sequenza definita.
- Target - Obiettivo è il gestore oggetto di richiesta.
- Gestione filtri (Gestione filtri) - filtri Gestione filtri e catena dei filtri.
- Client (Client) - oggetto clientdi oggetto di destinazione per inviare la richiesta.
realizzazione
CreeremoFilterChain,FilterManager, Target, client rappresenta entità come i vari oggetti.AuthenticationFiltereDebugFilterrappresentano filtri entità.
InterceptingFilterDemo,dimostriamo l'uso di classeClientper dimostrare il modello di progettazione del filtro Intercettare.
fase 1
Crea filtro Interfaccia filtro.
Filter.java
Filtro interfaccia pubblica { public void execute (richiesta String); }
fase 2
Crea filtro entità.
AuthenticationFilter.java
public class AuthenticationFilter implementa filtro { public void execute (richiesta String) { System.out.println ( "Richiesta di Autenticazione:" + richiesta); } }
DebugFilter.java
public class DebugFilter implementa filtro { public void execute (richiesta String) { System.out.println ( "log richiesta:" + richiesta); } }
fase 3
Crea target.
Target.java
Obiettivo public class { public void execute (richiesta String) { System.out.println ( "richiesta di esecuzione:" + richiesta); } }
fase 4
Creare una catena di filtri.
FilterChain.java
import java.util.ArrayList; import java.util.List; public class FilterChain { Elenco privato <Filtro> Filtri = new ArrayList <Filter> (); Target Target privato; public void addFilter (filtro Filter) { filters.add (filtro); } public void execute (richiesta String) { per (filtro Filter: filtri) { filter.execute (richiesta); } target.execute (richiesta); } setTarget public void (target Target) { this.target = bersaglio; } }
fase 5
Crea filtro Manager.
FilterManager.java
public class FilterManager { FilterChain filterChain; pubblico FilterManager (target Target) { filterChain = new FilterChain (); filterChain.setTarget (target); } public void setFilter (filtro Filter) { filterChain.addFilter (filtro); } filterRequest public void (richiesta String) { filterChain.execute (richiesta); } }
passo 6
Creare un client client.
Client.java
public class Cliente { FilterManager filterManager; setFilterManager public void (FilterManager filterManager) { this.filterManager = filterManager; } public void sendRequest (richiesta String) { filterManager.filterRequest (richiesta); } }
passo 7
Utilizzareclientper dimostrare il modello di progettazione del filtro Intercettare.
FrontControllerPatternDemo.java
public class InterceptingFilterDemo { Main (string [] args) {public static void FilterManager filterManager = new FilterManager (nuova destinazione ()); filterManager.setFilter (nuova AuthenticationFilter ()); filterManager.setFilter (nuova DebugFilter ()); Client Client = new client (); client.setFilterManager (filterManager); client.sendRequest ( "HOME"); } }
step 8
Verifica uscita.
Richiesta Autenticazione: HOME Richiesta di registro: HOME Richiesta Esecuzione: HOME