当前位置:   article > 正文

js设计模式:过滤器模式

js设计模式:过滤器模式

作用:

通常是为了实现引用类型数据的筛选,查找符合条件的对象

可以针对各种情况定义独立功能的过滤器,将过滤条件进行封装

如果有很多格式基本相同的数据,可以方便复用

示例:

  1. class Filter{
  2. constructor(filterHandler){
  3. this.filterHandler = filterHandler
  4. }
  5. filterFun(list){
  6. return list.filter(list => this.filterHandler(list))
  7. }
  8. }
  9. class CountryFilter extends Filter{
  10. constructor(country) {
  11. super(item => item.country === country)
  12. }
  13. }
  14. class GenderFilter extends Filter{
  15. constructor(gender) {
  16. super(item => item.gender === gender)
  17. }
  18. }
  19. const countryFilter = new CountryFilter('德玛西亚')
  20. const genderFilter = new GenderFilter('woman')
  21. const listArr = [
  22. {
  23. name:'wjt',
  24. country:'中国',
  25. gender:'man'
  26. },
  27. {
  28. name:'嘉文四世',
  29. country:'德玛西亚',
  30. gender:'man'
  31. },
  32. {
  33. name:'乐芙兰',
  34. country:'诺克萨斯',
  35. gender:'woman'
  36. },
  37. {
  38. name:'吉安娜.普罗德摩尔',
  39. country:'洛丹伦',
  40. gender:'woman'
  41. },
  42. ]
  43. const dmList = countryFilter.filterFun(listArr)
  44. const womanList = genderFilter.filterFun(listArr)
  45. console.log(dmList,'德玛西亚的人')
  46. console.log(womanList,'女性')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/138075
推荐阅读
  

闽ICP备14008679号