Большинство ОО-языков начинают имена своих интерфейсов с заглавной буквы I, почему Java этого не делает? Что послужило причиной несоблюдения этого соглашения?
Чтобы продемонстрировать, что я имею в виду, если бы я хотел иметь пользовательский интерфейс и реализацию пользователя, у меня было бы два варианта в Java:
- Класс = пользователь, интерфейс = пользовательский интерфейс
- Класс = UserImpl, Интерфейс = Пользователь
Где на большинстве языков:
Класс = Пользователь, Интерфейс = IUser
Теперь вы можете возразить, что вы всегда можете выбрать наиболее описательное имя для пользовательской реализации, и проблема исчезнет, но Java продвигает подход POJO к вещам, и большинство контейнеров IOC широко используют DynamicProxies. Вместе эти две вещи означают, что у вас будет множество интерфейсов с одной реализацией POJO.
Итак, я полагаю, что мой вопрос сводится к следующему: Стоит ли следовать более широкому соглашению об именах интерфейсов, особенно в свете того, в каком направлении движется Java Framework?
NetworkInterface
,DialogInterface
и т. д. - person sandalone   schedule 16.08.2013Abstract...
. - person ChiefTwoPencils   schedule 07.02.2015