游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

一套过滤器,让你的代码高处不胜寒

  一、介绍
  过滤器模式,顾名思义,从名字上就可以看出主要用于过滤对象,实现起来也很简单!
  从设计的角度看,过滤器模式涉及到三个角色:抽象过滤器角色:主要定义过滤器的行为;具体滤器角色:实现或者继承抽象过滤器,完善具体算法;客户端:客户类提出使用具体类的请求;
  话不多说,代码直接撸起来二、示例
  下面,我们以班级同学为例,过滤出满足要求的同学,实现过程如下!
  先创建一个数据实体类Person,如下:数据实体类publicclassPerson{privateStringname;姓名privateStringgender;性别privateintage;年龄publicStringgetName(){returnname;}。。。省略setgetpublicPerson(Stringname,Stringgender,intage){this。namename;this。gendergender;this。ageage;}OverridepublicStringtoString(){returnPerson{namename,gendergender,ageage};}}
  然后,创建一个过滤器标准接口Filter,代码如下:过滤器接口publicinterfaceFilter{过滤操作parampersonListreturnListPersonfilterOperate(ListPersonpersonList);}
  接着,创建过滤器具体实现类AgeFilter、GenderFilter,代码如下:过滤已满足18岁的同学publicclassAgeFilterimplementsFilter{OverridepublicListPersonfilterOperate(ListPersonpersonList){ListPersontargetListnewArrayList();for(Personperson:personList){if(person。getAge()18){targetList。add(person);}}returntargetList;}}过滤出性别为男的同学publicclassGenderFilterimplementsFilter{OverridepublicListPersonfilterOperate(ListPersonpersonList){ListPersontargetListnewArrayList();for(Personperson:personList){if(男。equals(person。getGender())){targetList。add(person);}}returntargetList;}}
  最后,编写一个测试类如下:publicclassFilterClient{publicstaticvoidmain(String〔〕args){ListPersonpersonListnewArrayList();personList。add(newPerson(程咬金,男,36));personList。add(newPerson(露娜,女,16));personList。add(newPerson(伽啰,女,18));personList。add(newPerson(苏烈,男,40));personList。add(newPerson(武则天,女,24));personList。add(newPerson(韩信,男,16));过程出年龄已满18周岁的同学FilterageFilternewAgeFilter();personListageFilter。filterOperate(personList);System。out。println(personList);System。out。println(分隔符);过滤出性别为男的同学FiltergenderFilternewGenderFilter();personListgenderFilter。filterOperate(personList);System。out。println(personList);}}
  输出结果:〔Person{name程咬金,gender男,age36},Person{name伽啰,gender女,age18},Person{name苏烈,gender男,age40},Person{name武则天,gender女,age24}〕分隔符〔Person{name程咬金,gender男,age36},Person{name苏烈,gender男,age40}〕
  当然,还可以按照姓名过滤,只需要写一个过滤器实现类,然后在客户端加入过滤即可!三、应用
  过滤器模式的应用,当属我们最熟悉的JavaWeb工程中的Filter,如果我们想自定义一个过滤器,只需要实现Filter即可!例如创建一个允许跨域的Filter过滤器,如下:ServletFilterimplementationclassCrossOriginFilterpublicclassCrossOriginFilterimplementsFilter{privatebooleanisCrossfalse;Defaultconstructor。publicCrossOriginFilter(){TODOAutogeneratedconstructorstub}seeFilterdestroy()publicvoiddestroy(){TODOAutogeneratedmethodstub}seeFilterdoFilter(ServletRequest,ServletResponse,FilterChain)publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{TODOAutogeneratedmethodstubplaceyourcodehereif(isCross){HttpServletRequesthttpServletRequest(HttpServletRequest)request;HttpServletResponsehttpServletResponse(HttpServletResponse)response;System。out。println(拦截请求:httpServletRequest。getServletPath());httpServletResponse。setHeader(AccessControlAllowOrigin,);httpServletResponse。setHeader(AccessControlAllowOrigin,httpServletRequest。getHeader(Origin));httpServletResponse。setHeader(AccessControlAllowCredentials,true);httpServletResponse。setHeader(AccessControlAllowMethods,POST,GET,OPTIONS,DELETE);httpServletResponse。setHeader(AccessControlMaxAge,3600);httpServletResponse。setHeader(AccessControlAllowHeaders,xrequestedwith);}passtherequestalongthefilterchainchain。doFilter(request,response);}seeFilterinit(FilterConfig)publicvoidinit(FilterConfigfConfig)throwsServletException{TODOAutogeneratedmethodstub}}四、总结
  过滤器模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来,操作也比较简单,在实际开发中,使用非常广泛。

小米MIX5曝新料?屏幕方面有重大的升级,搭配200W快充?就在不久前,小米发布了MIX系列的最新旗舰小米MIX4,采用了CUP屏下镜头的设计方案,实现了正面无开孔接近真全面屏的视觉观感,这也是小米史上第一款采用屏下的第一款全面的屏机形……错了性别不错爱3结局是啥,错了性别不错爱3简介爱情片《错了性别不错爱》上映有两部,可第三部没有上映,估计第三部的情节会接上前两部的情节,如果成为完结的情况,说不定会给观众带来比较完美的结局给展现,更把爱情发展更甜蜜。1错了……当华为被美国人禁用谷歌Gms后,Honor却在推特上公开配备当华为被美国人禁止用谷歌Gms后,Honor却在推特上。。。。。。背后捅刀子?给美国送子弹?联合谷歌绞杀华为?抛弃鸿蒙?谷歌孝子?HONOR在前期已经成功确认了与多……x战警观看顺序汇总X战警系列观影顺序2018x战警观看顺序:汇总《X战警》系列观影顺序2018x战警顺序怎么看,x战警系列观看顺序2018。喜欢的《x战警》系列的电影在2018年也是有上映的哦,而且这一部好像叫什么……印度电视剧推荐8部好看又好评且高分的印剧本文推荐8部印度电视剧,好看的印度好评高分电视剧,中国现在有不少网友对印度题材电视剧挺感兴趣的,好看的印度电视剧名字及剧情简介,喜欢的来看看吧。印度电视剧:佛陀此剧……孤城闭赵徽柔到底爱谁出身高贵却结局悲凉近日,电视剧《孤城闭》未播先火,在网上关于孤城闭中的人物大家都很好奇,在《孤城闭》中赵徽柔到底爱谁?赵徽柔最后和谁走到了一起?赵徽柔的结局是什么?一起来了解一下。电视剧《……小米赢了世界,却输给了舆论小米赢了世界却输给了舆论因为国内的小米可以说是所有同行的敌人明明可以卖4000的手机,你要卖1999,不搞死你我怎么赚钱?天天让你科普什么CPU,什么硬件,什么配置……10部儿童电影7一13岁励志又搞笑国产,2022暑假看一遍励志国产的适合7一13岁儿童的电影有哪些?励志的电影具有很好激励孩子的作用,因此,孩子是可以偶尔看一些励志电影的,下面是推荐10部儿童电影7一13岁励志又搞笑国产:《美丽中国》……老九门霍锦惜结局出乎人意料老九门霍锦惜简介老九门霍锦惜结局:在《老九门》中,霍家是唯一一家女性掌权的家族,而霍锦惜就是霍氏家族的人。霍锦惜被人称为ldquo;七姑娘rdquo;lsquo;,她不仅长得漂亮而且气质出尘,……有传言称AirPods3将与iPhone13一起在9月的活动根据DigiTimes的一份报告,第三代AirPods可能会在同一场发布会上发布,展示苹果即将推出的iPhone13系列,该报道援引熟悉此事的消息人士的话称。该报告总体上……李亚鹏新女友竟是王菲表妹华丽转身变妹夫?李亚鹏新女友竟是王菲表妹:华丽转身变妹夫?近日,李亚鹏疑牵手新欢在北京东三环鹏润大厦参加朋友聚会被拍,期间互动亲密,女方面容清秀长发飘飘,显得很有气质,靠在李亚鹏肩膀十分……别再被手机的超高像素远摄夜拍功能蒙骗了这些都是噱头现在的智能手机功能越来越强大了,可以说几乎是无所不能了:可以上网看新闻,可以网购,可以聊天,可以移动支付,可以导航,可以看电影追剧听音乐,还可以拍摄图片和视频,而且只要你安装各……
光阴里的故事罗金虎结局,光阴里的故事罗金虎的扮演者情感剧《光阴里的故事》给展现罗金虎的样子很老实,不过他有着好的家庭背景做支持,后期不断有着好的发展,慢慢他去自行车厂食堂工作而后离开大院下海经商,由此感觉葛铮把罗金虎的角色上演……深海利剑大结局怎么样,深海利剑大结局金子晴卢一涛在一起了吗军事剧《深海利剑》把潜艇做为国家的战略利器,过后不断培养新的人才进行训练来去对国外的潜艇去阻击,期间经过严格的训练后来负国防重任把任务给完成,最后金子晴和卢一涛走到一起了。1深……好看电视剧排行榜前十名2021(最火2021十大必看电视剧)再被无数次的yyds(yyds什么意思)之后,2021年的最佳电视剧作品,好看电视剧排行榜前十名给大家带来了,比如:《觉醒年代》、《山海情》、《功勋》、《大浪淘沙》、《城市的边……昔有琉璃瓦什么时候播出,昔有琉璃瓦演员表昔有琉璃瓦说出来很多人不清楚,可昔有琉璃瓦电视剧是什么时候播出,很多网友就想去了解一下有关的故事,看昔有琉璃瓦提前公布相关的海报和预告片,好让观众知道大概剧情,但有的网友就不清……西媒超过3。3亿物体绕地球运动太空碎片超临界阈值《西班牙人报》网站11月19日发表题为《超过3。3亿物体绕地球运动:太空垃圾超临界阈值》一文,全文摘编如下:由人类制造的、不受控制地绕地球运动的卫星及其碎片。这就是空中客……提醒发这5个字母到10086,即可拦截99的骚扰电话?网友亲您好,给您介绍下新开的XX楼盘小额贷款办理了解一下XX教育您有兴趣吗?这里是XX保险,有惊喜优惠大家都知道现在的互联网时代个人信息隐私很难得……不要忘记我爱你什么时候上映,不要忘记我爱你演员表不要忘记我爱你说出来很多人不清楚,可不要忘记我爱你电影是什么时候上映,很多网友就想去了解一下有关的故事,看不要忘记我爱你提早发布海报和预告片,来让观众熟悉大概剧情,但有的网友就……全系搭载NVIDIA显卡华硕强力机型带来震撼游戏体验7月9日至11日,由B站举办的BilibiliWorld2021(以下简称BW2021)在上海国家会展中心召开。ROG作为BW2021官方合作电竞品牌,在3H馆3A16展区为大……鬼吹灯顺序是怎么排的鬼吹灯观影顺序指南《鬼吹灯》系列作为大火的IP小说,除了原有的读者粉丝外,每当新剧上映还会吸引一批新的粉丝,可见《鬼吹灯》依然广受网友喜爱。当然这也离不开作者的好文笔和构思,对于新朋友来说可能还……求解鬼吹灯系列的时间顺序鬼吹灯系列的时间顺序是如何的?鬼吹灯共有8部:《鬼吹灯之精绝古城》《鬼吹灯之龙岭迷窟》《鬼吹灯之云南虫谷》《鬼吹灯之昆仑神宫》《鬼吹灯II黄皮子坟》《鬼吹灯2之二南海归墟》《鬼……搬山卸岭什么意思搬山卸岭摸金发丘哪个厉害?看过鬼吹灯系列剧的想必知道了卸岭魁首的陈玉楼,跟搬山道士魁首的鹧鸪哨,不过有很多人比较懵懂的搬山卸岭什么意思?到底什么才是搬山,什么才是卸岭呢?还有关于四门派搬山卸岭摸金发丘哪……如何把APP上传到各大应用市场与应用商店APP开发完成,测试人员内测后,接下来就是要上架到各大应用市场了。在这之前产品人员在开发中就需要把上架的各种资料进行申请。那么今天我们来整理一下上架需要哪些材料。APP应……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网