Шаблон проектирования для фильтрации пользовательской структуры данных - PullRequest
3 голосов
/ 19 марта 2012

Мне была предоставлена ​​структура данных ниже, и теперь мне нужно применить правила для фильтрации данной корзины. Примером может служить фильтрация всех элементов, перечисленных пользователем bob и кредитной картой. Правило зависит от конкретного случая.

Все это ниже - сложные типы в моем запросе и ответе с конкретной реализацией без реализации интерфейса.

Какой будет лучший шаблон проектирования, чтобы отделить мою структуру данных и правила, применяемые к ней? Поможет ли шаблон Decorator? Ваши предложения приветствуются.

   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;
    }

1 Ответ

0 голосов
/ 19 марта 2012
  1. Если для каждого PaymentType вам необходимо выполнить какой-либо другой тип операций, вы можете попробовать STATE PATTERN и делегировать ваш запрос.

  2. DECORATOR PATTERN isРаньше я добавлял дополнительную ответственность во время выполнения, поэтому я на самом деле не нашел такого сценария, может быть, я упускаю где-то какую-то точку.возможен ДЕКОРАТОРНЫЙ ШАБЛОН.

    Если количество элементов Фиксировано, тогда можно использовать КОМАНДНЫЙ ШАБЛОН, и сценарий ОТМЕНА даже поможет сбросить / принять элемент в / из КОРЗИНЫ

...