Это больше похоже на вопрос "хорошей практики".
Допустим, у меня есть интерфейс "MyInterface" и около 15 его реализаций. У меня есть объект с именем «MyProcess», и код выглядит так:
private final List<MyInterface> myInterfaces;
public MyProcess(@Qualifier("impl1") MyInterface impl1,
@Qualifier("impl2") MyInterface impl2,
@Qualifier("impl3") MyInterface impl3,
@Qualifier("impl4") MyInterface impl4,
@Qualifier("impl5") MyInterface impl5,
@Qualifier("impl6") MyInterface impl6,
@Qualifier("impl7") MyInterface impl7,
@Qualifier("impl8") MyInterface impl8) {
this.myInterfaces = Stream
.of(impl1,
impl2,
impl3,
impl4,
impl5,
impl6,
impl7,
impl8)
.collect(toList());
}
Цель - определить различные процессы, используя некоторые реализации MyInterface в определенном порядке c. Проблема в том, что отображается правило сонара S107 (конструктор имеет 8 параметров, которые больше 7 авторизованных). Мне было интересно, если это была проблема структуры кода или я просто должен был игнорировать сонар по этому вопросу. Мне не хочется нарушать SRP, поскольку единственная цель MyProcess - определить список MyInterface, который ему нужен. Кто-нибудь знает, как я могу улучшить этот код? Может быть, другой шаблон для использования?
Заранее благодарим за ваше время