java设计模式十四(过滤器模式)

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());
        }
    }
}

猜你喜欢

转载自blog.csdn.net/xiaolicd/article/details/81380729