Я пытаюсь найти элегантный способ реализовать алгоритм принятия решений, который позволяет легко поддерживать обслуживание, поскольку условия для принятия решений могут часто меняться.Принятие решений, сложные условия и планирование простого обслуживания
Я собираюсь попробовать и быть более конкретным с примером здесь:
Скажем, я пытаюсь управлять командой приготовления пищи шеф-поваров на кухне ресторана.
Каждый шеф-повар знает, как приготовить 3 вида пирогов: яблочный пирог, тыквенный пирог и малиновый пирог и 2 вида пиццы: сырная пицца и беконная пицца. Они все умеют готовить все.
Теперь я хотел бы отправить приказы этим начальникам относительно того, что ждет клиентов.
условия являются:
Вождь может только приготовить один пирог в то время. Если я закажу шеф-повар, чтобы приготовить яблочный пирог, например, я не могу приказать ему приготовить малиновый пирог или тыквенный пирог, если яблочный пирог не будет сделан, или я отправил запрос на отмену яблочного пирога.
Я могу попросить шеф-повара приготовить до 5 пицц одновременно, учитывая, что это для разных клиентов.
Я хотел бы создать алгоритм, который возвращает набор заказов, на которые я могу отправить конкретному шеф-повару, в отношении того, что он уже готовит.
Я работаю с C++. Я мог бы написать простой оператор switch/case, но техническое обслуживание было бы нелегким, если бы условия были изменены или добавлены новые пироги, и поэтому ...
Я немного застрял и действительно не вижу, как я могу инкапсулировать условия и принимать решения, чтобы уменьшить взаимозависимость между условиями и обеспечить удобство обслуживания в условиях приготовления пирога.
Как бы вы справились с внедрением алгоритма принятия решений сложных?
Если его общие проектные решения, которые вы ищете, возможно, что [programers.se] (http://programmers.stackexchange.com/) более подходит для этого вопроса. – Yann
Тогда я переведу свой вопрос, спасибо – JeD