У меня есть интересная проблема дизайна, которую я попытаюсь упростить в игрушечной проблеме ниже:
Я хочу создать систему, для которой вывод будет студенческим объектом на основе определенных входных данных и промежуточной обработки. Поток будет следующим: у меня есть список классных комнат как один тип ввода. Чтобы сгенерировать выход, этапы обработки:
- Отфильтруйте каждый класс учеников в возрасте до X (скажем, 10)
- Сортировка отфильтрованных результатов с помощью любой перестановки этого иерархического порядка: высота, вес, длина руки
- Верните 8 лучших учеников.
Другой вход может быть просто списком учеников, которые у меня уже есть, и хочу включить их в качестве части результата. Например: вход 1: список из 3 студентов, вход 2: список из 2 классных комнат, для которых будут выполняться этапы обработки выше.
Каким будет наилучший способ разработки такой системы с входными данными:
- тип ввода
{student list|classroom list}
, - тип фильтра
{age|height|etc}
, - порядок сортировки
{any ordering of height,weight,arm length}
, - returnNum
{how many students to return}
Система должна быть достаточно гибкой, чтобы учесть больше типов ввода и больше записей порядка сортировки (т.е. сортировать учащихся по размеру обуви}. Какую структуру данных я могу использовать для моделирования каждой части этого раздела (то есть, каков наилучший способ представления критериев порядка сортировки?) Существует ли какой-либо шаблон проектирования, который бы соответствовал этим потребностям? Любая помощь в проектировании архитектуры будет с благодарностью!