日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

过滤器用到了java哪个模式_设计模式之过滤器模式——Java语言描述

發布時間:2023/12/19 java 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过滤器用到了java哪个模式_设计模式之过滤器模式——Java语言描述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

過濾器模式允許開發人員使用不同的標準來過濾一組對象,通過邏輯運算以解耦的方式把它們連接起來

實現

創建一個Person對象、Criteria 接口和實現了該接口的實體類,來過濾 Person 對象的列表。CriteriaPatternDemo,我們的演示類使用 Criteria 對象,基于各種標準和它們的結合來過濾 Person 對象的列表。

創建一個Person類

public class Person {

private String name;

private String gender;

private String maritalStatus;

public Person(String name,String gender,String maritalStatus){

this.name = name;

this.gender = gender;

this.maritalStatus = maritalStatus;

}

public String getName() {

return name;

}

public String getGender() {

return gender;

}

public String getMaritalStatus() {

return maritalStatus;

}

}

為標準創建一個接口

import java.util.List;

public interface Criteria {

public List meetCriteria(List persons);

}

創建實體類

創建CriteriaMale類

import java.util.ArrayList;

import java.util.List;

public class CriteriaMale implements Criteria {

@Override

public List meetCriteria(List persons) {

List malePersons = new ArrayList();

for (Person person : persons) {

if(person.getGender().equalsIgnoreCase("MALE")){

malePersons.add(person);

}

}

return malePersons;

}

}

創建CriteriaFemale類

import java.util.ArrayList;

import java.util.List;

public class CriteriaFemale implements Criteria {

@Override

public List meetCriteria(List persons) {

List femalePersons = new ArrayList();

for (Person person : persons) {

if(person.getGender().equalsIgnoreCase("FEMALE")){

femalePersons.add(person);

}

}

return femalePersons;

}

}

創建CriteriaSingle類

import java.util.ArrayList;

import java.util.List;

public class CriteriaSingle implements Criteria {

@Override

public List meetCriteria(List persons) {

List singlePersons = new ArrayList();

for (Person person : persons) {

if(person.getMaritalStatus().equalsIgnoreCase("SINGLE")){

singlePersons.add(person);

}

}

return singlePersons;

}

}

創建AndCriteria類

import java.util.List;

public class AndCriteria implements Criteria {

private Criteria criteria;

private Criteria otherCriteria;

public AndCriteria(Criteria criteria, Criteria otherCriteria) {

this.criteria = criteria;

this.otherCriteria = otherCriteria;

}

@Override

public List meetCriteria(List persons) {

List firstCriteriaPersons = criteria.meetCriteria(persons);

return otherCriteria.meetCriteria(firstCriteriaPersons);

}

}

創建OrCriteria類

import java.util.List;

public class OrCriteria implements Criteria {

private Criteria criteria;

private Criteria otherCriteria;

public OrCriteria(Criteria criteria, Criteria otherCriteria) {

this.criteria = criteria;

this.otherCriteria = otherCriteria;

}

@Override

public List meetCriteria(List persons) {

List firstCriteriaItems = criteria.meetCriteria(persons);

List otherCriteriaItems = otherCriteria.meetCriteria(persons);

for (Person person : otherCriteriaItems) {

if(!firstCriteriaItems.contains(person)){

firstCriteriaItems.add(person);

}

}

return firstCriteriaItems;

}

}

使用示例

import java.util.ArrayList;

import java.util.List;

public class CriteriaPatternDemo {

public static void main(String[] args) {

List persons = new ArrayList();

persons.add(new Person("Robert","Male", "Single"));

persons.add(new Person("John","Male", "Married"));

persons.add(new Person("Laura","Female", "Married"));

persons.add(new Person("Diana","Female", "Single"));

persons.add(new Person("Mike","Male", "Single"));

persons.add(new Person("Bobby","Male", "Single"));

Criteria male = new CriteriaMale();

Criteria female = new CriteriaFemale();

Criteria single = new CriteriaSingle();

Criteria singleMale = new AndCriteria(single, male);

Criteria singleOrFemale = new OrCriteria(single, female);

System.out.println("Males: ");

printPersons(male.meetCriteria(persons));

System.out.println("\nFemales: ");

printPersons(female.meetCriteria(persons));

System.out.println("\nSingle Males: ");

printPersons(singleMale.meetCriteria(persons));

System.out.println("\nSingle Or Females: ");

printPersons(singleOrFemale.meetCriteria(persons));

}

public static void printPersons(List persons){

for (Person person : persons) {

System.out.println("Person : [ Name : " + person.getName()

+", Gender : " + person.getGender()

+", Marital Status : " + person.getMaritalStatus()

+" ]");

}

}

}

輸出結果

Males:

Person : [ Name : Robert, Gender : Male, Marital Status : Single ]

Person : [ Name : John, Gender : Male, Marital Status : Married ]

Person : [ Name : Mike, Gender : Male, Marital Status : Single ]

Person : [ Name : Bobby, Gender : Male, Marital Status : Single ]

Females:

Person : [ Name : Laura, Gender : Female, Marital Status : Married ]

Person : [ Name : Diana, Gender : Female, Marital Status : Single ]

Single Males:

Person : [ Name : Robert, Gender : Male, Marital Status : Single ]

Person : [ Name : Mike, Gender : Male, Marital Status : Single ]

Person : [ Name : Bobby, Gender : Male, Marital Status : Single ]

Single Or Females:

Person : [ Name : Robert, Gender : Male, Marital Status : Single ]

Person : [ Name : Diana, Gender : Female, Marital Status : Single ]

Person : [ Name : Mike, Gender : Male, Marital Status : Single ]

Person : [ Name : Bobby, Gender : Male, Marital Status : Single ]

Person : [ Name : Laura, Gender : Female, Marital Status : Married ]

總結

以上是生活随笔為你收集整理的过滤器用到了java哪个模式_设计模式之过滤器模式——Java语言描述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91天天看 | 天天综合影院 | 新版天堂资源中文8在线 | 人人澡人人澡人人澡 | 亚洲精品福利在线观看 | 欧美日韩在线视频播放 | 日本三级久久久 | 亚洲成人a∨ | 91不卡在线| 欧美精品一区二区不卡 | 国产一区视频在线播放 | 欧美日韩一本 | 友田真希一区二区 | 精品一区二区久久 | 日本午夜电影 | 大肉大捧一进一出好爽动态图 | 在线播放第一页 | 黄色自拍网站 | 欧美色图88 | 亚洲视频免费在线观看 | 96久久久| 合欢视频在线观看 | 91久久 | 性户外野战hd | 女人的av| 欧美一区二区黄色 | 一级片黄色 | 一本色道久久88综合无码 | 91成年版| 四虎福利| 欧美肥老妇视频九色 | 麻豆av网址 | 一本一道精品欧美中文字幕 | 99久久婷婷国产一区二区三区 | 中文字幕一区二区三区精华液 | 一级国产特黄bbbbb | 新国产视频 | 欧美成人aaa片一区国产精品 | 日韩日韩 | 四虎综合网 | 天天av天天干 | 天天干网站 | 亚洲黄色网络 | 思思精品视频 | 中文字幕一区二区三区在线视频 | 午夜黄色网址 | 国产麻豆成人 | 精品少妇人妻av免费久久洗澡 | 国产亚州av | 成人网在线播放 | 杨贵妃颤抖双乳呻吟求欢小说 | 一色道久久88加勒比一 | 男人舔女人下部高潮全视频 | 少妇性l交大片免费观看 | 成人深夜免费视频 | 欧美激情视频一区二区三区 | 免费成人深夜夜国外 | 老司机午夜精品 | 日本一区二区三区在线观看 | 激情视频91 | 天天插天天 | 国产成人a亚洲精v品无码 | 日韩三级久久 | 动漫美女放屁 | 日本理论片中文字幕 | 日本在线高清视频 | www.youjizz.com中国 | 91精品视频网 | 亚洲第五页 | 天天射天天拍 | 东北少妇高潮抽搐 | 在线观看欧美一区 | 一道本在线观看 | 91香蕉黄 | a√在线 | 青青草成人免费在线视频 | 欧美精品一区二区免费看 | 爱上av | 国产精品无码久久av | 国产精品无码一区二区三 | 香蕉成人在线视频 | 日本一区二区高清视频 | 国产成人精品白浆久久69 | 午夜神器在线观看 | 麻豆91在线观看 | av色在线观看| 一级在线视频 | 怡红院av亚洲一区二区三区h | 精品在线免费观看 | 国产乱淫片视频 | 四虎影视免费永久大全 | 色妞色视频一区二区三区四区 | 亚洲天堂一区在线观看 | 美女扒开内裤让男人捅 | 免费看国产曰批40分钟 | 五月激情婷婷丁香 | 欧美aⅴ在线 | 婷婷色激情 | 天堂网一区二区三区 |