Javascript实现Servlet中Filter组件的责任链模式

2019-01-17 14:54:53

Javascript实现Servlet中Filter组件的责任链模式

责任链 设计模式中非常简单,常用的一种设计模式

  1. class ApplicationFilterChain {
  2. // 构造函数初始化N个Filter实例
  3. constructor(filters){
  4. this.filters = filters;
  5. this.position = 0;
  6. this.filterSize = this.filters.length;
  7. }
  8. // 开始执行整个责任链
  9. doFilter(request,response){
  10. if(this.position < this.filterSize){
  11. this.filters[this.position ++].doFilter(request,response,this);
  12. }
  13. }
  14. }
  15. class Filter {
  16. constructor(name){
  17. this.name = name;
  18. }
  19. // 执行当前Filter的逻辑
  20. doFilter(request,response,chain){
  21. console.log(this.name + ' 执行');
  22. // 执行下一个Filter,也可以终止整个责任链
  23. chain.doFilter(request,response);
  24. }
  25. }
  26. let applicationFilterChain = new ApplicationFilterChain([new Filter('5'),new Filter('7'),new Filter('8'),new Filter('1')]);
  27. applicationFilterChain.doFilter('request','response');

0
4
0

添加评论

正在回复:
取消
3
0
4
0