過濾器模式
阿新 • • 發佈:2017-07-27
stat 屬於 color 過濾 args 結構型 com static 分享
過濾器模式(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 p1View Code=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=newFemaleFilter(); 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; } }
過濾器模式