Я перемещаю некоторый код из моего основного проекта в dll, чтобы сделать мое приложение более динамичным (dll можно заменить на другой, вроде плагина).Несколько подпрограмм в моем главном проекте были объединены в одну в dll, и разные куски кода выполняются в зависимости от переменной, переданной из основного проекта.Это, в свою очередь, выбирается из базы данных, которая обновляется библиотекой DLL при загрузке, что позволяет добавлять совершенно новые функциональные возможности без необходимости устанавливать новую версию приложения.
Теперь, за исключением аргументов, являющихсяпереданный из вызывающего кода в подпрограмму в dll, код в этом подпрограмме также использует значения некоторых публично объявленных переменных, которые отслеживают такие вещи, как исходный путь входных данных, внесенные пользователем изменения в некоторые объекты и т. д. До этогоПеремещая код, они были объявлены в модуле моего основного проекта.Значения теперь, однако, нужны сабвуферу в моей dll.
Я мог бы передать все эти значения переменных в качестве аргументов сабвуферу в dll, даже если большинство из них не используются каждый раз, когда выполняется вызов (поскольку я использую только один сабвуфер для всего, что делает dll).Это кажется самым простым решением.Однако я знаю, что использование методов с параметрами более 10 считается плохой практикой.Или я мог бы переместить открытые переменные в интерфейсную dll (которая уже существует), значения которой и мой основной проект, и моя dll могут получить и обновить там значения.
Что лучше (или наименее плохо) всроки исполнения?Может ли один из вариантов иметь неожиданные последствия?