«Объект конфигурации» - это тупой термин, применяемый в этой ситуации; это создает ваши усилия в чисто механическом смысле. Цель состоит в том, чтобы сообщить о своем намерении потребителю класса; давайте рефакторинг к этому.
Методы или конструкторы с многочисленными параметрами указывают на слабую связь между ними. Потребитель, как правило, должен сделать больше выводов, чтобы понять API. Что особенного в этих 3 файлах вместе с в этих 3 классах ? Это информация, которая не передается.
Это возможность создать более содержательный и интуитивно понятный интерфейс, извлекая явное понятие из неявного. Например, если 3 файла связаны из-за пользователя, параметр UserFileSet
будет ясно выражать это. Возможно, f1
относится к c1
, f2
к c2
и f3
к c3
. Объявление этих ассоциаций как независимых классов уменьшит вдвое количество параметров и увеличит объем информации, которую можно получить из вашего API.
В конечном счете, рефакторинг будет сильно зависеть от вашей проблемной области. Не думайте, что вы должны создать один объект для выполнения списка параметров; попытаться провести рефакторинг по контурам отношений между параметрами. Это всегда приводит к коду, который отражает решаемую проблему больше, чем язык, используемый для ее решения.