Я работал над проектом, в котором у меня есть класс Worker, который генерирует много данных в многопоточном режиме. Тип, размер и расположение данных являются переменными в зависимости от большого набора параметров, которые могут быть установлены конечным пользователем. По сути, это большой набор тестов, который я использую, чтобы исследовать, как определенные вещи работают на основе изменений данных. Сейчас у меня есть как минимум 12 различных параметров для класса Worker. Я думал о переключении на отдельный класс WorkerOptions, который содержит все эти значения, а затем попросил пользовательский интерфейс создать объект WorkerOptions и затем передать его в Worker. Тем не менее, я мог бы также выставить открытые свойства в классе Worker, чтобы позволить соответствующим образом устанавливать параметры при создании Worker.
Каков наилучший способ и почему? Я уверен, что это приведет к появлению разных мнений, но я открыт для слушания дебатов о том, почему разные люди могут делать это по-разному. Некоторые вещи, которые следует учитывать, это то, что в настоящее время, когда Worker создан и запущен, его конфигурация не изменится, пока не остановится. Это может быть изменено, но я не думаю, что это произойдет.
EDIT
Обычно я не являюсь разработчиком на C #, я знаю достаточно, чтобы писать приложения, которые функционируют и следуют общим шаблонам проектирования, но я разбираюсь в SQL Server, поэтому я мог бы задать дополнительные вопросы, чтобы уточнить ваше значение.