Хотя рефакторинг объекта параметров сам по себе не является плохой идеей, его не следует использовать, чтобы скрыть проблему, заключающуюся в том, что класс, которому требуется 30 фрагментов данных, предоставленных из других источников, все еще может быть чем-то вроде запаха кода. Рефакторинг объекта «Введение параметров», вероятно, следует рассматривать как этап в более широком процессе рефакторинга, а не как его завершение.
Одна из проблем, которую он на самом деле не решает, - это Feature Envy. Не указывает ли тот факт, что класс, которому передается объект параметров, так интересны данные другого класса, на то, что, возможно, методы, которые работают с этими данными, должны быть перемещены туда, где они находятся? Действительно лучше идентифицировать кластеры методов и данных, которые принадлежат друг другу, и группировать их в классы, тем самым увеличивая инкапсуляцию и делая ваш код более гибким.
После нескольких итераций разделения поведения и данных, с которыми оно работает, на отдельные блоки, вы должны обнаружить, что у вас больше нет классов с огромным количеством зависимостей, что всегда является лучшим конечным результатом, потому что это сделает ваш код более гибким.