Я занимаюсь разработкой программного обеспечения, которое принимает правила вида «A запрещает B» или «X требует Y» для создания приложения, которое позволит вам настроить сложный элемент.
Дляопишите его более подробно, представьте, что у вас есть уровень папок, в которых есть некоторое количество подпапок, и каждая из этих подпапок имеет некоторое количество элементов.Цель состоит в том, чтобы выразить отношения между элементами таким образом, чтобы помочь пользователю создать действительную коллекцию выборок.
Таким образом, действительные правила больше похожи на «Все (A, B, C) Запрещает любое (X,Y, Z) ', в котором говорится, что если пользователь выбирает A, B и C, он не может выбрать ни один из X, Y или Z. Это в основном просто логическая логика.
Существуют дополнительные типыКак и те, которые говорят, что если вы выберете A, то вы также должны выбрать B, но не стоит вдаваться в подробности всего этого.
Это не бизнес-логика (по крайней мере, в обычном смысле), иправила могут изменяться в любое время (и они будут изменяться), поэтому их нужно читать из строки и интерпретировать или подключать через сложную структуру базы данных (от которой я предпочел бы держаться подальше).
Реальная точка зренияэто: есть ли какая-то система или структура, которая имеет дело с таким поведением во время выполнения?Я знаю, что у Oracle есть штука под названием «Конфигуратор Oracle», которая делает именно то, о чем я говорю, но я думаю, что это слишком дорого.
Проект почти завершен, и я построил «работающую» систему, но я пытаюсь сделать вскрытие, чтобы выяснить, можно ли сделать это лучше / быстрее / дешевле.