Я хочу динамически загружать код, перемещая структуру каталогов и динамически загружая любые модули, которые я там нахожу.Как я могу динамически включать модули во вложенные каталоги?
Целью этого является проведение серии проверок. Если проверка на верхнем уровне не выполняется, никакие дочерние проверки не будут выполняться.
Мое мышление состояло в том, что объект контроллера мог сканировать каталоги, создавать иерархию модулей, а затем принимать решения о том, проходить ли какую-либо часть дерева на основе успеха/отказа валидации более высокого уровня ,
Например, у меня может быть серия проверок, которые я хочу выполнить против регулярного выражения, однако ни одна из проверок не должна выполняться, если регулярное выражение не существует или пусто. В этом случае каталог верхнего уровня будет содержать только проверку exists
, а дочерний каталог будет содержать все остальные проверки, которые будут выполняться, если существует регулярное выражение.
Возможность определить эти проверки в отдельных файлах и создать необходимую иерархию будет чрезвычайно полезна для удобства добавления дополнительных проверок позже, вместо того, чтобы взломать существующий класс и добавить методы.
Есть ли способ, которым приложение может динамически сканировать каталог, сохранять имена файлов в коллекции и затем использовать элементы этой коллекции в требовании? Я так не думаю. Как насчет нагрузки?
Есть ли способ достичь такого дизайна? Или я думаю о том, что все это неправильно, и подумать о какой-то другой методологии?
Я не уверен, что ваша цель на самом деле. Это скорее похоже на цепочку валидации, чем что-либо, что связано с динамической загрузкой модуля; методы проверки * могут существовать независимо от успеха/сбоя коллекции валидаций. –