服务热线:
138-2142-0129
新闻资讯
News
服务热线:
138-2142-0129
公司地址:
天津市大学软件学院D-510(天津工业大学院内)
公司邮箱:
1825629851@qq.com
扫码添加微信
软件设计开发模式之拦截过滤器模式
发布日期:2021-07-12 15:55:53
当我们想对应用程序的请求或响应进行一些预处理/后处理时,将使用拦截过滤器设计模式。在将请求传递到实际目标应用程序之前,已定义过滤器并将其应用于请求。过滤器可以对请求进行身份验证/授权/记录或跟踪,然后将请求传递给相应的处理程序。以下是这种类型的设计模式的实体。

过滤器-过滤器,它将在请求处理程序执行请求之前或之后执行某些任务。

过滤器链-过滤器链带有多个过滤器,有助于在目标上按定义的顺序执行它们。

软件设计开发模式之拦截过滤器模式

软件设计开发模式之拦截过滤器模式

目标-目标对象是请求处理程序

筛选器管理器-筛选器管理器管理筛选器和筛选器链。

客户端-客户端是将请求发送到目标对象的对象。

实作

我们将创建一个FilterChain,FilterManager,Target,Client作为代表我们实体的各种对象。AuthenticationFilter和DebugFilter代表具体的过滤器。

我们的演示类InterceptingFilterDemo将使用Client演示Intercepting Filter设计模式。

第1步

创建过滤器界面。

Filter.java

public interface Filter {

   public void execute(String request);

}

第2步

创建具体的过滤器。

AuthenticationFilter.java

public class AuthenticationFilter implements Filter {

   public void execute(String request){

      System.out.println("Authenticating request: " + request);

   }

}

DebugFilter.java

public class DebugFilter implements Filter {

   public void execute(String request){

      System.out.println("request log: " + request);

   }

}

第3步

建立目标

Target.java

public class Target {

   public void execute(String request){

      System.out.println("Executing request: " + request);

   }

}

第4步

创建过滤链

FilterChain.java
import java.util.ArrayList;

import java.util.List;

public class FilterChain {

   private List filters = new ArrayList();

   private Target target;

   public void addFilter(Filter filter){

      filters.add(filter);

   }

   public void execute(String request){

      for (Filter filter : filters) {

         filter.execute(request);

      }

      target.execute(request);

   }

   public void setTarget(Target target){

      this.target = target;

   }

}

第5步

创建过滤器管理器

FilterManager.java

public class FilterManager {

   FilterChain filterChain;

   public FilterManager(Target target){

      filterChain = new FilterChain();

      filterChain.setTarget(target);

   }

   public void setFilter(Filter filter){

      filterChain.addFilter(filter);

   }

   public void filterRequest(String request){

      filterChain.execute(request);

   }

}

第6步

创建客户端

Client.java

public class Client {

   FilterManager filterManager;

   public void setFilterManager(FilterManager filterManager){

      this.filterManager = filterManager;

   }

   public void sendRequest(String request){

      filterManager.filterRequest(request);

   }

}

第7步

使用客户端演示拦截过滤器设计模式。

InterceptingFilterDemo.java

public class InterceptingFilterDemo {

   public static void main(String[] args) {

      FilterManager filterManager = new FilterManager(new Target());

      filterManager.setFilter(new AuthenticationFilter());

      filterManager.setFilter(new DebugFilter());

      Client client = new Client();

      client.setFilterManager(filterManager);

      client.sendRequest("HOME");

   }

}

第8步

验证输出。

Authenticating request: HOME

request log: HOME

Executing request: HOME


软件开发案例:

1.拍卖app软件开发案例(易裘毛皮拍卖)

2.招聘app开发_打零工app软件定制案例

3.天津大悲禅院票务预订系统

4.麦伽瑜伽在线课程辅具商城app定制开发项目


产品及解决方案:

移动应用开发     企业信息化系统    电商系统   UI界面设计     微信小程序开发

匠人匠心科技是一家应用软件开发公司,专注于移动应用系统开发,app开发,企业信息化系统开发,电商系统开发,微信小程序开发,智能硬件app开发,物联网云系统开发等;专注APP定制开发服务,公司为众多中小型企业提供APP开发一站式服务,并为上市公司及大型政府事业单位提供技术解决方案及项目研发服务。为客户提供一站式解决方案和落地实现支撑。欢迎来电咨询:13821420129 13622150903

匠人匠心科技每天都会不定时更新有关天津软件开发以及软件应用系统的实用文章,希望对您有用,您也可以关注我们的微信账号二维码,咨询任何关于软件开发、APP开发方面的问题。
我们的微信二维码
  我们的微信二维码