Я просто изучаю Java, поэтому мне трудно получить доступ к возможным альтернативам и влиянию такого дизайнерского решения.
Java 8 добавляет функцию по умолчанию к интерфейсам, которая позволяет интерфейсам иметь реализацию. Это позволяет расширить существующие интерфейсы с помощью новых методов, не нарушая клиентов, развивая интерфейс со временем обратно-совместимым способом. Однако, учитывая реализацию по умолчанию, такие расширения несколько ограничены и, вероятно, будут реализованы с использованием существующих методов интерфейса интерфейса или методов библиотеки. Поэтому мой вопрос:
- Почему появилась эта языковая функция?
- Какие ключевые новые функции он поддерживает? (например, разделители)
- Какие еще альтернативы были для поддержки этих языковых функций? Например, почему бы не создать новый интерфейс SplitIterable, который расширяет Iterable?
- Каким будет влияние реализации этих альтернатив (распространение интерфейсов?)
- Должен ли я предоставить реализацию по умолчанию для метода в первом редакторе интерфейса, когда его можно реализовать как состав других методов?