过滤器模式
Posted 连先森
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤器模式相关的知识,希望对你有一定的参考价值。
过滤器模式(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; } }
以上是关于过滤器模式的主要内容,如果未能解决你的问题,请参考以下文章