1. 程式人生 > >過濾器模式

過濾器模式

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 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; } }
View Code

過濾器模式