我有一個將被過濾的對象列表。過濾對象的設計模式
此過濾將包含至少3條規則。
因此,例如:
public class Filtering {
List<MyObject> myObjectList;
List<MyObject> filterStep1(List<MyObject> myObjectList){
for(Myobject myobj : myObjectList){
if(isCriteriaSatisified){
continue
}
else {
removeThisObjectFromList
}
}
}
List<MyObject> filterStep2(List<MyObject> myObjectList){
for(Myobject myobj : myObjectList){
if(isCriteriaSatisified){
continue
}
else {
removeThisObjectFromList
}
}
}
}
我喜歡這種方法,因爲它很簡單,自包含的,可以看得很輕鬆什麼努力來實現。
但也許有一種設計模式,我應該使用呢?
「責任鏈」模式是我正在考慮的地方,filterStep1 & filterStep2在上面的代碼將被重構爲一個單獨的手柄。
您可以考慮Java8的Stream API,它爲Collection對象提供了很好的過濾選項。 – 2014-09-30 13:06:30
這個問題比Stack Overflow更適合[Code Review](http://codereview.stackexchange.com/)。 – ZeroOne 2014-09-30 13:07:14
只有一句話:您正在修改原始列表。我所稱的過濾將會生成一個僅包含有效元素而不修改原始列表的新列表。 – 2014-09-30 13:29:48