Latest web development tutorials

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.

Intercettare modello del filtro diagramma UML

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