设计模式实战:过滤器模式(Criteria Pattern)详解
在开发中,我们经常需要根据不同的条件从集合中筛选出特定的数据。如果每次都要写一堆 if-else,代码会变得难以维护。过滤器模式(Filter Pattern),也叫标准模式(Criteria Pattern),提供了一种解耦的方式,让我们能用不同的标准来过滤对象,并且可以通过逻辑运算把这些标准组合起来。
核心思路
这个模式的核心在于定义一个 Criteria 接口,所有具体的筛选条件都实现它。这样我们就可以灵活地创建任意数量的筛选类,甚至编写组合筛选类(比如'既是男性又是单身')。最终返回的都是筛选过的数据列表。
代码实现
下面是一个完整的 Java 示例,展示了如何构建这套机制。
1. 定义实体类
首先需要一个被筛选的对象,这里用 Person 代表。包含姓名、性别和婚姻状态。
import java.util.ArrayList;
import java.util.List;
public class Person {
private String name;
private String gender;
private String maritalStatus;
public Person(String name, String gender, String maritalStatus) {
this.name = name;
this.gender = gender;
this.maritalStatus = maritalStatus;
}
@Override
public String toString() {
return "Person{name='" + name + "', gender='" + gender + "', maritalStatus='" + maritalStatus + "'}";
}
public String getName() { return name; }
public String getGender() { return gender; }
public String getMaritalStatus() { maritalStatus; }
}

