> Personally, I find the "leading I on an interface" rule to 
> hurt readability, but worse is that it also tempts you to an 
> insidious practice of naming an interface with the I, and 
> then an implementation class the same way without the I.  
> Consider the two names:
> 
> * IThisIsAVeryLongName (interface describing part of your app's API)
> 
> * ThisIsAVeryLongName (class that implements IThisIsAVeryLongName)
> 
> Without studying closely, can you instantly tell the 
> difference?  I contend that it's easier to do that (although 
> not necessarily trivial with long names) with patterns like:
> 
> * ThisIsAVeryLongName (interface describing part of your app's API)
> 
> * ThisIsAVeryLongNameImpl (class that implements ThisIsAVeryLongName)
> 

Actually the I-Fraction I belong to says:
IThisIsAVeryLongName 
and 
ThisIsAVeryLongNameImpl 

as well as 

Aspect1ThisIsAVeryLongNameImpl and 
AnotherAspectThisIsAVeryLongNameImpl (like FileSystemThisIsAVeryLongNameImpl
and PostgresThisIsAVeryLongNameImpl)

along with 

ThisIsAVeryLongNameFactory

or, if you have more then one:
IThisIsAVeryLongNameFactory...



The clue is:

ThisIsAVeryLongName < is never used directly. 

Regards
Leon



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to