Я люблю принцип невозможности написания говна, когда тебя API заставляет писать либо что то рабочее либо некомпилящееся, условно (или в рантайме сразу падающее на худой конец)
С неявным подходом ты должен по 100 раз проверить что ты взял нужный интерфейс, что ты правильный атрибут поставил, проверить что если тип в другой сборке то он подтянется и так далее