过滤器模式:这种模式容许开发人员使用不一样的标准来过滤一组对象,经过逻辑运算以解耦的方式把它们链接起来。这种类型的设计模式属于结构型模式,它结合多个标准来得到单一标准。【菜鸟】其实就是按条件筛选一组对象出来。html
咱们车厂如今车型不少,如今只想筛选出来bwm的数量。java
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; } }
咱们将全部的车做为参数,按条件筛选出来bwm.web
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; } }
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()); } }
【菜鸟教程】:http://www.runoob.com/design-pattern/filter-pattern.html设计模式