У меня есть класс для импорта товаров из CSV файла, который требует около 7 параметров. Это информация, которая определенно необходима импортеру.
Все эти параметры имеют одинаковое время жизни. В конце концов мы должны иметь Неизменяемый объект.
Я был слишком напуган, чтобы перечислить все из них в конструкторе из-за его влияния на читаемость и решил перенести 3 из них на инъекции сеттеров. Но, очевидно, это не изящное решение.
Вопросы:
1) Является ли смешение на основе конструктора и установки на основе инъекций плохой практикой?
2) Как эта конкретная проблема может быть решена?
Я думал о применении рефакторинга "Ввести объект параметров" Мартина Фаулера, но есть проблема с этим.
4 Параметры можно легко перемещать в объект параметров (customerId, projectId, languageId и т.д.) - все целые числа.
Другие 3 параметра - это объект, который я вставляю (требуется для модульных тестов).