LunarRoom

过滤器模式

字数统计: 223阅读时长: 1 min
2020/05/07 Share

过滤器模式

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。

在Java中典型的应用即为分组,通过过滤器模式可以将一个大组中的元素按照不同的过滤方式分到各个小组中。

1
2
3
4
5
Map<Integer, List<Person >> groupMap = persons.stream().collect(Collectors.groupingBy(Person::getGender));
groupMap.forEach((k, v) -> {
System.out.println(k);
v.forEach(System.out::println);
});

实际上,Java中有单独的过滤器

1
2
List<String> aList = Lists.newArrayList("1","2","");
aList.stream().filter(x -> StringUtils.isNotEmpty(x));

这个方法可以获取到全部的非空字符串

CATALOG
  1. 1. 过滤器模式