В java-коде, на котором я сейчас работаю, часто есть структура вроде
file Controller.java:
interface Controller {...}
file ControllerImpl.java:
class ControllerImpl implements Controller {...}
Но для каждого интерфейса существует только одна реализация. Разве это не так, как использование файлов заголовков в C/С++, где у меня есть код, разбитый на такие файлы, как
Controller.hpp
Controller.cpp
Из того, что я знаю, были добавлены файлы заголовков в C/С++, чтобы помочь компилятору, который больше не нужен в Java. Также заголовочные файлы должны помочь с удобочитаемостью кода, но наличие современной среды разработки с откидным и контурным просмотром также не является необходимостью.
Итак, почему люди снова вводят заголовочные файлы в Java через заднюю дверь, программируя против интерфейсов?