유연하게 대응하기 위해서 interface
를 사용한다.public List<Apple> filterApples(List<Apple> inventory, Color color, int weight, boolean flag) {
List<Apple> result = new ArrayList<>();
for (Apple apple : inventory) {
if ((flag && apple.getColor().equals(color)) ||
!flag && apple.getWeight() > weight) {
result.add(apple);
}
}
return result;
}
public void 모든_속성으로_필터링() {
List<Apple> greenApples = filterApples(inventory, Color.GREEN, 0, true);
List<Apple> heavyApples = filterApples(inventory, null, 150, false);
}
- 위 같이 무게 또는 색으로 하나만 필터링 하고 싶지만, 파라미터에는 모두 넣어줘야 한다.