The .NET standard of prefixing an interface name with an I seems to be becoming widespread and isn\'t just limited to .NET any more. I have come across a lot of Java code that u
As a .NET programmer (for the most part), I actually prefer the Java convention of dropping the I
here, for a simple reason: Often, small redesigns require the change from an interface into an abstract base class or vice versa. If you have to change the name, this might require a lot of unnecessary refactoring.
On the other hand, usage for the client should be transparent so they shouldn't care for this type hint. Furthermore, the “able” suffix in `Thingable” should be enough of a hint. It works well enough in Java.
/EDIT: I'd like to point out that the above reasoning had prompted me to drop the I
prefix for private projects. However, upon checking one of them against the FxCop rule set, I promptly reverted to the usage of I
. Consistency wins here, even though a foolish consistency is the hobgoblin of little minds.