Більшість мов OO мають префікс своїх імен інтерфейсу з великої літери I, чому Java не робить цього? Що було обґрунтуванням недотримання цієї конвенції?
Щоб продемонструвати, що я маю на увазі, якби я хотів мати користувальницький інтерфейс та користувацьку реалізацію, я мав би два варіанти на Java:
- Клас = Користувач, Інтерфейс = Інтерфейс користувача
- Клас = UserImpl, інтерфейс = користувач
Де на більшості мов:
Клас = Користувач, Інтерфейс = IUser
Тепер ви можете стверджувати, що ви завжди можете вибрати найбільш описову назву для впровадження користувача, і проблема усувається, але Java підштовхує POJO-підхід до речей і більшість контейнерів IOC широко використовують DynamicProxies. Ці дві речі разом означають, що у вас буде багато інтерфейсів з однією реалізацією POJO.
Отже, я думаю, моє запитання зводиться до: "Чи варто дотримуватися більш широкої конвенції про іменування інтерфейсів, особливо з огляду на те, куди, начебто, рухаються рамки Java Frameworks?"
NetworkInterface
, DialogInterface
і т.д.