【設計模式學習筆記】過濾器模式
阿新 • • 發佈:2018-12-22
過濾器模式:這種模式允許開發人員使用不同的標準來過濾一組物件,通過邏輯運算以解耦的方式把它們連線起來。這種型別的設計模式屬於結構型模式,它結合多個標準來獲得單一標準。【菜鳥】其實就是按條件篩選一組物件出來。
文章目錄
我們車廠現在車型很多,現在只想篩選出來bwm的數量。
1.1 定義車
package filter; /************************************************ *@ClassName : Car *@Description : TODO *@Author : NikolaZhang *@Date : 【2018/12/15 0015 17:21】 *@Version : 1.0.0 *************************************************/ public class Car { private String name; public String getName() { return name; } public Car(String name) { this.name = name; } }
1.2 過濾器
我們將所有的車作為引數,按條件篩選出來bwm.
package filter; import java.util.ArrayList; import java.util.List; /************************************************ *@ClassName : CarFilter *@Description : TODO *@Author : NikolaZhang *@Date : 【2018/12/15 0015 17:20】 *@Version : 1.0.0 *************************************************/ public class CarFilter { private List<Car> list = new ArrayList<>(); public List<Car> filterCar(List<Car> listCar){ for (Car car :listCar){ if("bwm".equals(car.getName())){ list.add(car); } } return list; } }
1.3 測試
package filter; import java.util.ArrayList; import java.util.List; /************************************************ *@ClassName : Test *@Description : TODO *@Author : NikolaZhang *@Date : 【2018/12/15 0015 17:20】 *@Version : 1.0.0 *************************************************/ public class Test { public static void main(String[] args) { List<Car> list = new ArrayList<>(); list.add(new Car("bwm")); list.add(new Car("benz")); list.add(new Car("BWM")); CarFilter carFilter = new CarFilter(); System.out.println("符合條件的車數:"+carFilter.filterCar(list).size()); } }
1.4 結果
參考
【菜鳥教程】:http://www.runoob.com/design-pattern/filter-pattern.html
本文原文地址:https://blog.csdn.net/baidu_30325009/article/details/85018743