Мне предоставлена следующая структура данных, и теперь мне нужно применить правила для фильтрации данной тележки. Примером может быть отфильтровать все элементы, которые перечислены пользователем bob и с помощью кредитной карты метода оплаты. Правило зависит от случая к случаю.Шаблон проектирования для фильтрации настраиваемой структуры данных
Все перечисленные ниже являются сложными типами в моем запросе и ответе с конкретной реализацией без реализации интерфейса.
Что будет лучшим шаблоном проектирования, чтобы отделить мою структуру данных и правила, применяемые к ней. Будет ли шаблон декоратора помочь? Ваши предложения приветствуются.
public class PaymentType {
private String paymentType;
}
public class Items {
private Integer itemId;
private String category;
private List<PaymentType> paymentOptions;
}
public class Group {
private Integer sellerId;
private List<Items> itemList;
}
public class Cart {
private Integer cardId;
private List<Group> group;
}
[Сеть ответственности] (HTTP: //en.wikipedia. org/wiki/Chain-of-Respons_pattern) можно использовать для создания цепочки фильтров. Кроме того (это касается реализации, хотя), я бы сделал «представление» данной корзины, которая предлагает итератор по группам и элементам внутри каждой группы, в зависимости от применяемых правил фильтрации. – khachik
Чтобы уточнить: вы хотите получить из корзины все предметы, принадлежащие группе, с некоторыми продавцами И у вас есть некоторый тип оплаты, указанный в paymentOptions? –
Да, один типичный пример правила, размещенного над тележкой. И все возможные правила, которые могут быть сформированы. –