chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

過濾器模式是指什么?

冬至子 ? 來源:全棧開發(fā)的碼農(nóng) ? 作者:全棧開發(fā)的碼農(nóng) ? 2023-06-01 14:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

過濾器模式是指通過構(gòu)造一系列不同的標(biāo)準(zhǔn)實現(xiàn)類,通過這些標(biāo)準(zhǔn)實現(xiàn)類把目標(biāo)對象(通常是多個)按照對應(yīng)的標(biāo)準(zhǔn)進(jìn)行過濾,從而得到想要的對象(或?qū)ο蠼M)。這些標(biāo)準(zhǔn)實現(xiàn)類也可以構(gòu)造成多個標(biāo)準(zhǔn)組合的形式(多個標(biāo)準(zhǔn)的“與”、“或”、“非”結(jié)合)。

下例中以過濾人員對象為例,人員Person類具有name、gender、maritalStatus等3個屬性,在主函數(shù)中構(gòu)造一組人員,使各人員具有不同的屬性,然后通過過濾器對這些人員進(jìn)行過濾。類圖如下:

圖片

Person類:

package filter;
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;
  }
  public String getInformation() {
    return name+":"+gender+","+maritalStatus;
  }
}

Criteria接口類:

package filter;
import java.util.List;
public interface Criteria {
  List < Person > meetCriteria(List < Person > persons);
}

CriteriaFemale實現(xiàn)類:

package filter;
import java.util.ArrayList;
import java.util.List;
/*
 * 過濾得到女性人員
 */
public class CriteriaFemale implements Criteria{
  @Override
  public List< Person > meetCriteria(List< Person > persons) {
    List < Person > femalePerson = new ArrayList < Person >();
    for(Person person: persons) {
      if(person.getGender().equals("女")) {
        femalePerson.add(person);
      }
    }
    return femalePerson;
  }
}

CriteriaMale實現(xiàn)類:

package filter;
import java.util.ArrayList;
import java.util.List;
/*
 * 過濾得到男性人員
 */
public class CriteriaMale implements Criteria{
  @Override
  public List< Person > meetCriteria(List< Person > persons) {
    List < Person > malePersons= new ArrayList < Person > ();
    for(Person person: persons) {
      if(person.getGender().equals("男")) {
        malePersons.add(person);
      }
    }
    return malePersons;
  }
}

CriteriaSingle實現(xiàn)類:

package filter;
import java.util.ArrayList;
import java.util.List;
/*
 * 過濾得到單身人員
 */
public class CriteriaSingle implements Criteria{


  @Override
  public List< Person > meetCriteria(List< Person > persons) {
    List < Person > singlePersons = new ArrayList < Person > ();
    for(Person person: persons) {
      if(person.getMaritalStatus().equals("單身")) {
        singlePersons.add(person);
      }
    }
    return singlePersons;
  }
}

Andcriteria實現(xiàn)類:

package filter;
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< Person > meetCriteria(List< Person > persons) {
    List < Person > firstCriteriaPersons = criteria.meetCriteria(persons);
    return otherCriteria.meetCriteria(firstCriteriaPersons);
  }
}

OrCriteria實現(xiàn)類:

package filter;
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< Person > meetCriteria(List< Person > persons) {
    List< Person > firstCriteriaPersons = criteria.meetCriteria(persons);
    List< Person > ohterCriteriaPersons = otherCriteria.meetCriteria(persons);
    for(Person person: ohterCriteriaPersons) {
      if(!firstCriteriaPersons.contains(person)) {
        firstCriteriaPersons.add(person);
      }
    }
    return firstCriteriaPersons;
  }
}

主函數(shù)調(diào)用類:

package main;
import java.util.ArrayList;
import java.util.List;
import filter.*;
public class FilterPattern {
  public static void main(String[] args) {
    List < Person > persons=new ArrayList < Person > ();
    persons.add(new Person("張三","男","單身"));
    persons.add(new Person("李四","女","已婚"));
    persons.add(new Person("王五","女","單身"));
    persons.add(new Person("趙六","男","已婚"));
    persons.add(new Person("張七","女","單身"));
    persons.add(new Person("李八","男","單身"));
    persons.add(new Person("王九","女","單身"));
    //過濾得到男性
    Criteria male= new CriteriaMale();
    List < Person > malePersons=male.meetCriteria(persons);
    System.out.println("全部男性:");
    for(Person person: malePersons) {
      System.out.println(person.getInformation());
    }
    //過濾得到女性
    Criteria female = new CriteriaFemale();
    List < Person > femalePersons=female.meetCriteria(persons);
    System.out.println("全部女性:");
    for(Person person: femalePersons) {
      System.out.println(person.getInformation());
    }
    //過濾得到單身人士
    Criteria single = new CriteriaSingle();
    List < Person > singlePersons=single.meetCriteria(persons);
    System.out.println("全部單身:");
    for(Person person: singlePersons) {
      System.out.println(person.getInformation());
    }
    //過濾得到單身女性
    Criteria femaleSingle = new AndCriteria(female,single);
    List < Person > femaleSinglePersons=femaleSingle.meetCriteria(persons);
    System.out.println("全部單身女性:");
    for(Person person: femaleSinglePersons) {
      System.out.println(person.getInformation());
    }
    //過濾得到男性或單身人士
    Criteria maleOrSingle = new OrCriteria(male,single);
    List < Person > maleOrSinglePersons=maleOrSingle.meetCriteria(persons);
    System.out.println("全部單身或男性:");
    for(Person person: maleOrSinglePersons) {
      System.out.println(person.getInformation());
    }
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 過濾器
    +關(guān)注

    關(guān)注

    1

    文章

    441

    瀏覽量

    20707
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    一文理解布隆過濾器和布谷鳥過濾器

    作者:京東保險 王奕龍 最近在大促中使用到了布隆過濾器,所以本次借著機(jī)會整理下相關(guān)內(nèi)容,并了解了布谷鳥過濾器,希望對后續(xù)學(xué)習(xí)的同學(xué)有啟發(fā)~ 布隆過濾器 布隆過濾器是 概率性數(shù)據(jù)結(jié)構(gòu) ,
    的頭像 發(fā)表于 11-07 10:10 ?1494次閱讀
    一文理解布隆<b class='flag-5'>過濾器</b>和布谷鳥<b class='flag-5'>過濾器</b>

    STM32提供兩種過濾器模式

    系列文章目錄文章目錄系列文章目錄前言一、過濾器的作用二、可變的位寬三、屏蔽位模式四、標(biāo)識符列表模式五、過濾器組位寬和模式的設(shè)置六、
    發(fā)表于 08-19 07:13

    CN過濾器原理

    CN過濾器原理 CN過濾器采用整體玻璃鋼,耐酸耐堿,一般耐溫65℃。內(nèi)部裝有約半米高的懸浮介質(zhì)層。懸浮過濾介質(zhì)為1-2mm小球,采用高分子材料加工,密度大約
    發(fā)表于 02-25 15:00 ?26次下載

    過濾器的作用

    本視頻主要詳細(xì)介紹了過濾器的作用,分別是濾速高、過濾效果好;強(qiáng)度高、耐腐蝕;靜電作用;過濾物質(zhì);攔截;其次介紹了水龍頭過濾器的作用,最后介紹了活性炭
    的頭像 發(fā)表于 12-12 16:23 ?4.9w次閱讀

    解密高效空氣過濾器的性能及要求

    高效過濾器生產(chǎn)廠商 三河市科豐電氣有限公司高效過濾器。三河市科豐電氣有限公司致力于為通信行業(yè)、暖通行業(yè)、節(jié)能行業(yè),過濾行業(yè)等行業(yè)并提供專業(yè)配套產(chǎn)品和服務(wù)。高效過濾器產(chǎn)品具有
    發(fā)表于 03-19 14:56 ?2277次閱讀

    創(chuàng)新陶瓷過濾器解決方案

    創(chuàng)新陶瓷過濾器解決方案
    發(fā)表于 10-27 14:56 ?16次下載

    STM32 CAN應(yīng)用-過濾器設(shè)置

    在使用STM32的CAN控制器進(jìn)行數(shù)據(jù)收發(fā),當(dāng)用到位屏蔽模式的時候,就要設(shè)置過濾器了,這個關(guān)系到是否能夠接收到想要的數(shù)據(jù)。下面針對幾種不同情況對CAN過濾器(Filter)進(jìn)行設(shè)置。
    發(fā)表于 02-10 10:00 ?4次下載
    STM32 CAN應(yīng)用-<b class='flag-5'>過濾器</b>設(shè)置

    絲扣Y過濾器

    絲扣Y過濾器是Y過濾器的一種,普通濾材是不銹鋼或者碳鋼,濾芯普通帶有不銹鋼骨架。 絲扣Y形過濾器有時也叫做·不銹鋼內(nèi)螺紋Y過濾器。? ? 特性: ? 1.絲扣Y形
    的頭像 發(fā)表于 08-13 17:24 ?4547次閱讀

    絲扣Y過濾器過濾器測試原理簡介

    絲扣Y過濾器是Y過濾器的一種,普通濾材是不銹鋼或者碳鋼,濾芯普通帶有不銹鋼骨架。 絲扣Y形過濾器有時也叫做·不銹鋼內(nèi)螺紋Y過濾器。? 特性: 1.絲扣Y形
    發(fā)表于 09-05 09:27 ?2983次閱讀

    絲扣Y形過濾器

    絲扣Y形過濾器是保送介質(zhì)管道上不可短少的一種安裝,通常裝置在減壓閥、泄壓閥、定水位閥或其它設(shè)備的進(jìn)口端,用來消弭介質(zhì)中的雜質(zhì),以維護(hù)閥門及設(shè)備的正常運用。 絲扣Y形過濾器有時也叫做·不銹鋼內(nèi)螺紋Y
    的頭像 發(fā)表于 10-24 15:03 ?4289次閱讀

    漢克森過濾器系列介紹

    漢克森過濾器 【1】國產(chǎn)品牌濾芯均為我司生產(chǎn)的替代原廠品牌濾芯,其過濾濾材采用德國原裝進(jìn)口HV公司產(chǎn)品,注冊商標(biāo)為“佳潔”牌。本公司涉及的其它品牌均無品牌意義,只是作為產(chǎn)品型號參照和客戶選型對照
    發(fā)表于 03-01 08:53 ?1486次閱讀
    漢克森<b class='flag-5'>過濾器</b>系列介紹

    過濾器藥液過濾器濾除率測試儀

    過濾器藥液過濾器濾除率測試儀
    的頭像 發(fā)表于 03-09 14:53 ?1376次閱讀
    <b class='flag-5'>過濾器</b>藥液<b class='flag-5'>過濾器</b>濾除率測試儀

    貝騰過濾器濾芯

    貝騰過濾器濾芯
    的頭像 發(fā)表于 04-11 15:09 ?1782次閱讀
    貝騰<b class='flag-5'>過濾器</b>濾芯

    殺菌過濾器 滅菌過濾器 除菌過濾器

    殺菌過濾器 滅菌過濾器 除菌過濾器
    的頭像 發(fā)表于 03-03 14:03 ?3430次閱讀
    殺菌<b class='flag-5'>過濾器</b> 滅菌<b class='flag-5'>過濾器</b> 除菌<b class='flag-5'>過濾器</b>

    解析ECAN-E02單過濾器CAN硬件過濾

    通信中,過濾器的配置對于性能和消息處理的準(zhǔn)確性非常重要。什么是CAN過濾器過濾模式?在使用ECAN-E02的單過濾
    的頭像 發(fā)表于 01-16 19:35 ?577次閱讀
    解析ECAN-E02單<b class='flag-5'>過濾器</b>CAN硬件<b class='flag-5'>過濾</b>