I believe the difference between using the prefix with ISomeName and AbstractSomeName is that you commonly use the interface to refer to an instance but you do not refer to an instance using the Abstract* name. So the "I" prefix is undesirable because of frequent use. The "Abstract" prefix denotes an important distinction and even dissuades people from using its name.

For example, we frequenly use Map to refer to map instances. How often do we refer to them as AbstractMap ? Sometimes you do need to access the concrete class and in this case, HashMap, it is a good name. It would not be as *nice* to type IMap often or use MapImpl. Also, Naming AbstractMap BaseMap or DefaultMap hides that it's a partial implementation. Base* and Default* are good uses to define the commonly used implementation of the interface its name implies exists. It also shows that it was written to be extended or swapped out for a completely different implementation of the interface.

I like it this way :)

enjoy,
eli

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



Reply via email to