У меня есть модуль, который должен сохранить значение решения (для теста).Это, конечно, тривиально, когда решением является просто значение типа «342».Однако есть случаи, когда происходят динамические вычисления.Например, если пользователь вводит значение 100, возможно, для того, чтобы получить правильное решение, я сначала должен рассчитать (x * 2) == 300. Поэтому, если x = 100, решение будет неправильным.
К сожалению, я не могу хранить такие вычисления в базе данных (по крайней мере, основываясь на том, что я знаю).Одна вещь, которую я мог бы сделать, это добавить конкретные методы решения для конкретных тестов в моей модели Викторины.Однако мне это совсем не нравится.Это делает класс очень сложным в обслуживании, поэтому я быстро отказался от этой идеи.
Другая идея состояла бы в том, чтобы сохранять новый объект класса в каждом тесте, в котором это необходимо.Этот класс будет включать все необходимые методы, которые просто проверяют вычисления (либо с STI, либо с модулем, скорее всего, последний проще).Мне больше нравится эта идея, и я думаю, что, скорее всего, это то, что я собираюсь реализовать, но прежде чем сделать это, я хотел бы услышать ваши идеи по этому поводу.
Как бы вы поступили об этом?
ОБРАТИТЕ ВНИМАНИЕ, что большая проблема, которая возникает из-за создания модуля или класса для обработки всех решений, это тот случай, когда я хотел бы иметь несколько авторов викторин в будущем.Если бы они могли создавать свои собственные проблемы, было бы практически невозможно создать для них динамические решения.Или это был бы ад для меня, чтобы контролировать каждую такую запись и вручную создавать необходимый код.