首页 > 代码库 > 过滤器模式
过滤器模式
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。
import java.util.ArrayList; import java.util.List; public class FilterDemo { public static void main(String[] args) { List<Person> ps=new ArrayList(); Person p1=new Person(0,"a1"); Person p2=new Person(0,"a2"); Person p3=new Person(0,"a3"); Person p4=new Person(1,"a4"); Person p5=new Person(0,"a5"); Person p6=new Person(1,"a6"); ps.add(p1);ps.add(p2);ps.add(p3);ps.add(p4);ps.add(p5);ps.add(p6); Filter f=new FemaleFilter(); List<Person> result=f.filte(ps); for(Person p:result) { System.out.println(p.name);; } } } interface Filter { List<Person> filte(List<Person> persons); } class MaleFilter implements Filter { public List<Person> filte(List<Person> persons){ List<Person> malePersons=new ArrayList(); for(Person p:persons) { if(p.sex==0) { malePersons.add(p); } } return malePersons; } } class FemaleFilter implements Filter { public List<Person> filte(List<Person> persons){ List<Person> femalePersons=new ArrayList<Person>(); for(Person p:persons) { if(p.sex==1) { femalePersons.add(p); } } return femalePersons; } } class Person { public int sex; public String name; Person(int sex,String name) { this.sex=sex; this.name=name; } }
过滤器模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。