Я до сих пор не обнаружил общепринятый шаблон для следующей ситуации:
В базе данных существует трехуровневая серия задач.
- Основная задача: собрать данные для пользователя X; данные отчета;
- Подзадача: убедиться, что все данные выбраны и верны; сообщить об успехе или ошибках
- Минимальное задание: получить часть данных из сети, сопоставить ее с каким-либо шаблоном (описанным обоими уровнями выше); сообщить об ошибках ввода-вывода или совпадения шаблонов.
В настоящее время я уверен, что у меня есть только объект-компаратор, который проверяет минимальное состояние задачи, и две машины транзакций состояния, во-первых, чтобы проверить минимальное состояние задачи, а затем, чтобы реализовать продвижение состояния на всех трех уровнях.
Но я не хочу писать мозговой код, который пострадает только из-за методов доступа к состоянию задачи, распределенных между подобъектами / методами, поэтому отношения родитель-состояние-> ребенок-состояние-> действие-состояние кажутся плохая идея, в результате чего код вроде
if ($ level1object-> subtasks-> subtasks-> subtasks_completed) {...}.
Шаблонный код должен либо просто выглядеть чисто и иметь только getNextMiniTask .. getErrorStateForMainTask
методы, либо использовать какую-то другую архитектуру для наблюдения за задачами.
Ищите хороший образец такой очереди на работу, так как не хотите изобретать велосипед с квадратным колесом. аннотация, Java, хранимые процедуры SQL / Hibernate, приветствие PHP.
P.S. Предложение этого может привести к некоторой форме n-мерного дерева, где возможные решения принимают подуровни или заставляют всю ветку останавливать и выдавать ошибку. Тем не менее, все еще ищем пример кода.