Most OO languages prefix their interface names with a capital I, why does Java not do this? What was the rationale for not following this convention?

To demonstrate what I mean, if I wanted to have a User interface and a User implementation I’d have two choices in Java:

  1. Class = User, Interface = UserInterface
  2. Class = UserImpl, Interface = User

Where in most languages:

Class = User, Interface = IUser

Now, you might argue that you could always pick a most descriptive name for the user implementation and the problem goes away, but Java’s pushing a POJO approach to things and most IOC containers use DynamicProxies extensively. These two things together mean that you’ll have lots of interfaces with a single POJO implementation.

So, I guess my question boils down to: “Is it worth following the broader Interface naming convention especially in light of where Java Frameworks seem to be heading?”

11 Answers
11

Leave a Reply

Your email address will not be published. Required fields are marked *