> I agree, names like IThing and ThingImpl can be a sign of not thinking too > hard about naming things (and even a rush to get coding without enough > thought put into design - but that's a long story).
I* is just a convention, which some like, others dislike, and *Impl are perfectly fine when used in private inner classes (the only case I've found in a quick search of Wicket's code). Good naming is nice, but is not the ultimate goal of good design, for god's sake! Backward compatibility (a pragmatic one, not a religious one like Java's) is much higher in my priorities. > For me, dropping those > "I" prefixes and any "Impl" suffixes will make the project code-base look > even more credible. ... and breaking everything every release will make the project less credible. Will you rename PropertyModel to PropertyLocator? ListModel to ListLocator? BreadCrumbModel to BreadCrumbLocator? For the sake of consistency, of course :)