1、模式理解:过滤嘛,就好比相亲,这么多人可以让你去挑选,这就意味着你要筛选呀,不能什么歪瓜裂枣都要是吧,这就是过滤,你创建过滤的标准,符合标准就可以进一步发展,就这么简单
2、应用场景:当需要筛选很多对象的时候就可以这么用呀
3、代码示例:可以参考:https://www.w3cschool.cn/java/java-filter-pattern.html
//既然要过滤,那么先把要过滤的东西给创建出来,我这里创建的是小盆友对象
public class Student {
private String name;
private String age;
public Student(String name,String age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
//然后创建过滤器,过滤年纪比较小的小盆友
public class AgeFilter {
List<Student> list2=new ArrayList<>();
public List<Student> filter(List<Student> list){
//特别提醒,在循环集合的时候是不可以用remove来删除集合的数据的
//你可以先将要删除的数据保存到新的集合里,然后用removeAll来统一删除
for (Student student : list) {
if (Integer.valueOf(student.getAge())<7) {
System.out.println(student.getName()+"的年齡太小不能上学");
}else {
list2.add(student);//把符合条件的小盆友放到新的集合里输出
}
}
return list2;
}
}
//最后写个测试类来测试一下
public class Main {
public static void main(String[] args) {
List<Student> list=new ArrayList<>();
Student s1=new Student("土豆","5");
Student s2=new Student("茄子","8");
Student s3=new Student("木瓜","7");
list.add(s1);
list.add(s2);
list.add(s3);
AgeFilter ageFilter=new AgeFilter();
List<Student> list2=ageFilter.filter(list);
System.out.println("可以上学的小盆友是:");
for (Student student : list2) {
System.out.println(student.getName());
}
}
}