Большинство языков OO ставят перед именами интерфейсов заглавные буквы I, почему Java этого не делает? Что послужило основанием для несоблюдения этого соглашения?
Чтобы продемонстрировать, что я имею в виду, если бы я хотел иметь пользовательский интерфейс и пользовательскую реализацию, у меня было бы два варианта в Java:
- Класс = Пользователь, Интерфейс = Пользовательский Интерфейс
- Класс = UserImpl, Интерфейс = Пользователь
Где на большинстве языков:
Класс = Пользователь, Интерфейс = IUser
Теперь вы можете утверждать, что вы всегда можете выбрать наиболее описательное имя для пользовательской реализации, и проблема исчезнет, но Java продвигает подход POJO к вещам, и большинство контейнеров IOC широко используют DynamicProxies. Эти две вещи вместе означают, что у вас будет много интерфейсов с одной реализацией POJO.
Итак, я предполагаю, что мой вопрос сводится к следующему: «Стоит ли следовать более широкому соглашению об именах интерфейсов, особенно в свете того, куда движется Java Frameworks?»
NetworkInterface
, DialogInterface
и т. Д.