私が思うコードで最もよく説明されているのは、これは単なる例です。
public class MyPOJO {
public String name;
public int age;
public MyPOJO(String name, int age) {
this.name = name;
this.age = age;
}
}
public class MyProcessor {
public List<MyPOJO> process(List<MyPOJO> mypojos) {
List<MyPOJO> temp = new ArrayList<MyPOJO>;
for (int i=0; i <moypojos.size(); i++) {
if (filterOne(mypojos[i])) continue;
if (filterTwo(mypojos[i])) continue;
if (filterThree(mypojos[i])) continue;
temp.add(mypojos[i];
}
}
public boolean filterOne(MyPOJO mypojo) {
// in practice filters aren't so basic
return (mypojo.age < 21);
}
// assume implementations for the other filter methods
}
醜いです。基本的に私はコレクションを持っており、それをある種のふるいに通して、特定の条件を満たすオブジェクトのみの処理を続行したいと思います。私の推測では、これにはブール値を返す一連のメソッドよりも優れたパターンがあります。