Większość języków OO poprzedza swoje nazwy interfejsów wielką literą I, dlaczego Java tego nie robi? Jakie było uzasadnienie nieprzestrzegania tej konwencji?
Aby zademonstrować, co mam na myśli, gdybym chciał mieć interfejs użytkownika i implementację użytkownika, miałbym dwie możliwości w Javie:
- Klasa = Użytkownik, Interfejs = Interfejs użytkownika
- Klasa = UserImpl, Interfejs = Użytkownik
Gdzie w większości języków:
Klasa = Użytkownik, Interfejs = Użytkownik
Teraz możesz argumentować, że zawsze możesz wybrać najbardziej opisową nazwę dla implementacji użytkownika, a problem zniknie, ale Java popycha podejście POJO do rzeczy, a większość kontenerów IOC intensywnie korzysta z DynamicProxies. Te dwie rzeczy razem oznaczają, że będziesz mieć wiele interfejsów z jedną implementacją POJO.
Wydaje mi się, że moje pytanie sprowadza się do: „Czy warto stosować szerszą konwencję nazewnictwa interfejsów, zwłaszcza w świetle tego, dokąd zmierzają frameworki Java?”
NetworkInterface
, DialogInterface
itp