过滤器模式
来源:互联网 发布:js undefend 判断 编辑:程序博客网 时间:2024/06/07 21:45
过滤器模式顾名思义就是根据我们需要过滤对象,得到需要的对象,属于结构型设计模式。
过滤器在现实中也有很多例子,比如净化水,滤波器等…
public interface FilterPerson { List<Person> filterMeet(List<Person> list);}
public class Person { public String name; public String gender; public Person() { } public Person(String name, String gender) { this.name = name; this.gender = gender; }}
public class ImpGenderPerson implements FilterPerson { @Override public List<Person> filterMeet(List<Person> list) { List<Person> genderList = new ArrayList<>(); for (Person p : list) { if ("1".equals(p.gender)) { genderList.add(p); } } return genderList; }}
public class ImpNamePerson implements FilterPerson { @Override public List<Person> filterMeet(List<Person> list) { List<Person> nameList = new ArrayList<>(); for (Person p : list) { if ("Java".equals(p.name)) { nameList.add(p); } } return nameList; }}
public class FilterPatterDemo { public static void main(String[] args) { List<Person> list = new ArrayList<>(); Person p = new Person("Java", "1"); list.add(p); p = new Person("Kotlin", "1"); list.add(p); p = new Person("object-c", "0"); list.add(p); FilterPerson filterPerson = new ImpGenderPerson(); List<Person> people = filterPerson.filterMeet(list); println(people); filterPerson = new ImpNamePerson(); people = filterPerson.filterMeet(list); println(people); } public static void println(List<Person> list) { System.out.println("----------------------"); Person p = null; for (int i = 0; i < list.size(); i++) { p = list.get(i); System.out.println("Person:" + p.name + "->" + p.gender); } System.out.println("----------------------"); }}
结果:
阅读全文
0 0
- 过滤器模式
- 过滤器模式
- 过滤器模式
- 过滤器模式
- 过滤器模式
- 设计模式--过滤器模式
- 设计模式-过滤器模式
- 行为模式_过滤器
- 过滤器模式-Filter Pattern
- KWIC:管道-过滤器模式.
- 责任链(过滤器)模式
- 设计模式:Filter过滤器
- Java拦截过滤器模式
- 拦截过滤器模式
- Java拦截过滤器模式
- 责任链模式/过滤器模式
- 结构型模式--过滤器模式
- J2EE模式--拦截过滤器模式
- StatsModels 安装过程中报出error: INCLUDE environment variable is empty
- 添加环境变量的三种方法
- 6步学会朴素贝叶斯算法(包含python语言和R语言源码)
- JAVA实现单链表
- gluseprogram
- 过滤器模式
- 实现数据库功能(GreenDao+butterknife)
- 洛谷P2286 [HNOI2004]宠物收养场(BZOJ1208)
- static extern const 静态全局变量与全局变量的区别
- OpenJ_Bailian 4147 汉诺塔问题(Hanoi)
- 实现简单的花括号配对问题
- 针对mybatis的理解
- XTU1167 逆序数
- Linux 中如何卸载已安装的软件