У меня есть список объектов, которые будут отфильтрованы.Шаблон проектирования для фильтрующих объектов
Эта фильтрация будет состоять как минимум из 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 в приведенном выше коде будет реорганизован в отдельный ручной инструмент.
Вы можете рассмотреть API потока Java8, который обеспечивает отличные параметры фильтрации для объектов Collection. –
Этот вопрос будет гораздо лучше подходит для [Code Review] (http://codereview.stackexchange.com/), чем для переполнения стека. – ZeroOne
Только одно замечание: вы изменяете исходные списки. То, что я называю фильтрацией, было бы создание нового списка, содержащего только допустимые элементы без изменения исходного списка. –