Я разрабатываю приложение Java EE 6, в котором «поставщики» должны иметь возможность определять цену и различные скидки на услуги для пользователей. Есть много разных провайдеров. Каждый из них предоставляет одну и ту же услугу, модели ценообразования могут быть разными.
Ценовая модель: - Поставщик должен иметь возможность определять цену, например. в час, в минуту, за процесс, ... . - Поставщик должен иметь возможность легко добавлять условия для определения скидки, которую получает пользователь. Например: пользователи из определенной группы пользователей получают скидку 10%, а пользователи, воспользовавшиеся услугой более 5 раз, получают еще одну скидку. - Должна быть возможность связывать условия с логическими операциями, такими как «И» или «ИЛИ». - Количество возможных условий должно быть определено производителем программного обеспечения.
- Когда пользователь пытается получить доступ к услуге, должна отображаться цена для конкретного пользователя. После использования услуги конкретный пользователь когда-нибудь получает счет, в котором указана общая стоимость этой услуги. При использовании сервиса провайдер может изменить модель ценообразования, поэтому должен быть номер версии или что-то в этом роде. После этого версии модели ценообразования должны быть сохранены в базе данных.
Вопрос в том, возможно ли и имеет ли смысл использовать механизм правил для решения этой спецификации? Провайдер должен определять условия без xml-файлов или чего-то подобного, просто нажав и выбрав. У меня нет опыта работы с механизмами правил... так что, может быть, кто-нибудь поможет мне выяснить, какое решение лучше всего подходит для проблемы.