2012-03-19 6 views
3

Мне предоставлена ​​следующая структура данных, и теперь мне нужно применить правила для фильтрации данной тележки. Примером может быть отфильтровать все элементы, которые перечислены пользователем 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; 
    } 
+0

[Сеть ответственности] (HTTP: //en.wikipedia. org/wiki/Chain-of-Respons_pattern) можно использовать для создания цепочки фильтров. Кроме того (это касается реализации, хотя), я бы сделал «представление» данной корзины, которая предлагает итератор по группам и элементам внутри каждой группы, в зависимости от применяемых правил фильтрации. – khachik

+0

Чтобы уточнить: вы хотите получить из корзины все предметы, принадлежащие группе, с некоторыми продавцами И у вас есть некоторый тип оплаты, указанный в paymentOptions? –

+0

Да, один типичный пример правила, размещенного над тележкой. И все возможные правила, которые могут быть сформированы. –

ответ

0
  1. Если для каждого PaymentType, вам необходимо выполнить некоторые различные виды операций, то вы можете попробовать государственного образца и передать свой запрос.

  2. DECORATOR PATTERN используется, чтобы добавить дополнительную ответственность во время выполнения, поэтому я действительно не нашел такого сценария, возможно, я где-то не хватает места.

Другие товары, группа может быть разделена на две части и есть возможность ДЕКОРАТОРА.

Если количество элементов фиксированы, то команда может быть использована, и UNDO сценарий будет даже полезно для отбрасывания/принять товар в/из CART

Смежные вопросы