db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Armin Waibel <arm...@apache.org>
Subject Re: [vote] Naming standard
Date Mon, 25 Apr 2005 08:33:36 GMT
Brian McCallister wrote:

>> * The class names of Implementations of such interfaces end in "Impl".
>>
>> [ ] +1
>> [ ] +/- 0
>> [X ] -1
> 
> 
> Use a descriptive name instead.
>

Think we should difference in this case.

If the interface named StatementManager and OJB shipped with one 
pluggable class, then StatementManagerImpl/StatementManagerDefaultImpl 
is descriptive enough (what will be more descriptive?). The OJB user can 
extend/implement his own class and can name it 
StatementManagerMyCompanyImpl.

On the other hand we have interfaces like ObjectCache. In this case a 
descriptive name is mandatory, because OJB itself shipped with several 
versions and the function of ObjectCache is not clear. So names like 
ObjectCacheReadOnlyImpl, ObjectCacheTwoLevelImpl, ... are useful.


>>
>> * Abstract base classes of such implementations have their name ending
>> in "AbstractImpl"
>>
>> [ ] +1
>> [ ] +/- 0
>> [X ] -1
> 
> 
> Would prefer BaseFoo or, even better a descriptive name, to 
> FooAbstractImpl.
>

Could you give an example. What will be the descriptive name of 
ConnectionFactoryAbstractImpl? 
AbstractConnectionFactory/BaseConnectionFactory isn't more descriptive.


>>
>> * If OJB ships with one concrete implementation, and the interface is
>> meant to be an extension point for users for their own implementations
>> (e.g. ProxyFactory), then the implementation class name ends in
>> "DefaultImpl".
>>
>> [ ] +1
>> [ ] +/- 0
>> [X ] -1
> 
> 
> DefaultProxyFactory is way better than ProxyFactoryDefaultImpl
>

but then you have to look for
DefaultProxyFactory
JDKProxyFactory
CGLibProxyFactory

if you don't know the name in advance you have to search all class names 
(or look for all implementations of ProxyFactory interface) to find the 
shipped implementation classes. If we use
ProxyFactoryDefaultImpl
ProxyFactoryJDKImpl
ProxyFactoryCGLibImpl
it's easier to "bunch" the different implementation classes.

Seems you don't like the
AInterfaceNameImpl/AInterfaceNameDefaultImpl
naming convention in general.
Is it a linguistic problem? E.g. no one would say "BallGreen" if a 
"green ball" was meant.

regards,
Armin

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org


Mime
View raw message