java设计模式—过滤器模式
一.概述
过滤模式又叫责任链模式,可以通过不同的过滤规则过滤一组对象。
二.模式示例:
我们以过滤学生成绩60以下的为例,说明过滤器模式具体实现过程:
1.创建学生类
public class Student {
private String name;
private float score;
public Student(String name, float score){
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
}
2.创建过滤器接口
public interface Filter {
public List<Student> filterStudent(List<Student> students);
}
3.实现过滤器类。
public class ScorePass implements Filter{
@Override
public List<Student> filterStudent(List<Student> students) {
List<Student> passedStudents = new ArrayList<Student>();
for(Student student: students){
if(student.getScore() >= 60){
passedStudents.add(student);
}
}
return passedStudents;
}
}
4.模式调用
public class Test {
public static void main(String args[]){
List<Student> students = new ArrayList<Student>();
students.add(new Student("小明", 70F));
students.add(new Student("八戒", 50F));
students.add(new Student("悟空", 90F));
ScorePass pass = new ScorePass();
List<Student> lstPassed = pass.filterStudent(students);
for(Student student: lstPassed){
System.out.println(student.getName() + ":" + student.getScore());
}
}
}