В моем проекте используется определенная библиотека. Эта библиотека имеет интерфейс, который имеет около 15 методов.
Цель этого интерфейса - дать возможность подписаться на некоторые события, которые генерируются в библиотеке. Класс слушателя в приложении может реализовать этот интерфейс и зарегистрировать себя в качестве слушателя в библиотеке для получения событий.
Все методы в этом интерфейсе - это фактически события. Могут быть слушатели, которым требуется только одно или два события из многих событий в интерфейсе. Несмотря на то, что слушатель интересуется только несколькими событиями, слушатель должен реализовать все методы при расширении интерфейса.
Поэтому я попросил разработчика этой библиотеки добавить пустые реализации по умолчанию в методы в интерфейсе.
Но разработчик библиотеки отказывается добавлять стандартные реализации, заявляя, что он нарушит лучшие практики Java и использование реализаций по умолчанию в интерфейсных методах идет вразрез с целями интерфейсов.
Но, как я понимаю, метод в этом интерфейсе не указывает какое-то действие, на которое должен быть способен реализатор этого интерфейса. Метод в этом интерфейсе скорее определяет событие, которое может заинтересовать разработчик. Поэтому я не вижу ясной причины не добавлять стандартные реализации.
Итак, добавляет ли реализация по умолчанию к этому интерфейсу нарушить лучшие практики java?