Cedric on Interface naming convention:
Some argued that using ‘I’ adds noise. Usage of ‘Impl’ suffix takes care of this problem too.
I wonder if the author of this remark noticed the irony of this comment 🙂
Neeraj Kumar left a good comment on this, which is similar to what I was thinking: Both “I” and “Impl” add noise – the question is which one is less evil.
Here’s why I prefer “*Impl”.
Actually, I usually prefer Impl’s to tell me what kind of Impl. Even if there’s only one Impl, it’s sometimes useful to provide a hint about what other Impl’s might be possible. To use the canonical example, I’d rather see BubbleSortImpl than SortImpl. Also worth noting that if you’re doing TDD, you probably have mock implementations as well; with JMock, they’re not defined classes because they’re instantiated using dynamic proxy. However, they are present, so I like to keep in the back of my mind that the class name “XImpl” is really shorthand for XProdImpl.