Tôi có một danh sách các đối tượng sẽ được lọc.Mẫu thiết kế để lọc các đối tượng
Bộ lọc này sẽ bao gồm ít nhất 3 quy tắc.
Vì vậy, ví dụ:
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
}
}
}
}
Tôi thích phương pháp này vì nó rất đơn giản, khép kín và có thể nhìn thấy rất dễ dàng gì đang cố gắng để đạt được.
Nhưng có lẽ có một mẫu thiết kế tôi nên sử dụng thay thế?
Mẫu "Chuỗi trách nhiệm" là thứ mà tôi đang xem xét nơi bộ lọcStep1 & filterStep2 ở trên mã sẽ được cấu trúc lại thành một trình xử lý riêng biệt.
Bạn có thể xem xét API luồng của Java8, cung cấp các tùy chọn lọc tuyệt vời cho các đối tượng Bộ sưu tập. –
Câu hỏi này sẽ phù hợp hơn với [Đánh giá mã] (http://codereview.stackexchange.com/) so với Stack Overflow. – ZeroOne
Chỉ một nhận xét: bạn đang sửa đổi danh sách gốc. Những gì tôi gọi là lọc sẽ tạo ra một danh sách mới chỉ chứa các phần tử hợp lệ mà không sửa đổi danh sách gốc. –