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

歡迎訪問 生活随笔!

生活随笔

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

java

java filter 模式,Java设计模式----过滤器模式(挑三拣四)

發布時間:2023/12/2 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java filter 模式,Java设计模式----过滤器模式(挑三拣四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

過濾器模式

描述

攔截過濾器模式(Intercepting Filter Pattern)用于對應用程序的請求或響應做一些預處理/后處理。定義過濾器,并在把請求傳給實際目標應用程序之前應用在請求上。過濾器可以做認證/授權/記錄日志,或者跟蹤請求,然后把請求傳給相應的處理程序。以下是這種設計模式的實體。

實質(參考過濾器鏈工作):

原始數據->過濾器1->過濾器2->過濾器3->最終需要的數據

場景

此篇我們以垃圾回收回收為例來描述這一模式

我們需要在一堆垃圾中 選出各種各樣的垃圾 來進行分類 然后再過濾出來不是垃圾被回收掉的東西

UML類圖

編碼

定義垃圾的屬性(攔截器)

@Data

@ToString

@AllArgsConstructor

@NoArgsConstructor

public class Rubbish {

private String name;

private boolean isA;

private boolean isB;

private boolean isC;

}

創建一個檢查垃圾的接口(攔截器)

public interface CheckRubbish {

public List check(List list);

}

編寫有哪幾種垃圾(幾種攔截器)

public class A implements CheckRubbish {

@Override

public List check(List list) {

List A_list = new ArrayList<>();

list.forEach(item -> {

if (item.isA()) {

A_list.add(item);

}

});

return A_list;

}

}

public class B implements CheckRubbish {

@Override

public List check(List list) {

List B_List = new ArrayList<>();

list.forEach(item -> {

if (item.isB()) {

B_List.add(item);

}

});

return B_List;

}

}

public class C implements CheckRubbish {

@Override

public List check(List list) {

List C_List = new ArrayList<>();

list.forEach(item -> {

if (item.isC()) {

C_List.add(item);

}

});

return C_List;

}

}

測試 : 我們創建一個list(垃圾堆) 用來進行垃圾過濾

public class Test {

public static void main(String[] args) {

List list = new ArrayList<>();

list.add(new Rubbish("過期香蕉", true, false, false));

list.add(new Rubbish("過期牛奶", false, false, true));

list.add(new Rubbish("過期紙巾", false, true, false));

list.add(new Rubbish("正常牛奶", false, false, false));

A a = new A();

B b = new B();

C c = new C();

System.out.println("A 垃圾");

printRubbish(a.check(list));

System.out.println("B 垃圾");

printRubbish(b.check(list));

System.out.println("C 垃圾");

printRubbish(c.check(list));

}

private static void printRubbish(List list){

list.forEach(System.out::println);

}

}

垃圾分類:

A 垃圾

Rubbish(name=過期香蕉, isA=true, isB=false, isC=false)

B 垃圾

Rubbish(name=過期紙巾, isA=false, isB=true, isC=false)

C 垃圾

Rubbish(name=過期牛奶, isA=false, isB=false, isC=true)

過濾出來的不是垃圾的:

list.add(new Rubbish("正常牛奶", false, false, false));

呈易

發布了16 篇原創文章 · 獲贊 5 · 訪問量 1799

私信

關注

標簽:false,List,list,垃圾,new,挑三揀四,Java,設計模式,public

來源: https://blog.csdn.net/qq_42252844/article/details/104517682

總結

以上是生活随笔為你收集整理的java filter 模式,Java设计模式----过滤器模式(挑三拣四)的全部內容,希望文章能夠幫你解決所遇到的問題。

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