Я слышал утверждения, что « @ImplementedBy является злом» на том основании, что это нарушает концепции DI и делает интерфейс известно о его разработчиках.
Это может быть правдой в некоторых случаях, но часто я обнаруживал, что это просто приводит к более чистому коду (не нужно поддерживать длинные модули), но при этом ничего не вредит.
Что касается прагматиков, а не пуристов, когда вы думаете, что стоит использовать @ImplementedBy?