directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Re: [ADS 2.0] Naming convention ... again !
Date Mon, 04 Sep 2006 23:17:23 GMT

>> Good idea. But then I'm a little bit annoyed by the name 
>> BindRequestImpl. So am I with the BindRequestDecorator which could 
>> have been AbstractBindRequestDecorator, as we have AbstractMessage, 
>> AbstractRequest, etc.
> heh ok I'm not helping :)

Well, I have been a little bit to far :) Let's add Abstract in front of 
*all* abstract class, it seems a reasonnable approahc.
I like to keep BindRequest as an concrete class, because this is what 
users want to manipulate. Call it common sense... But then we need an 
interface to solve the previous problem. I propose BindRequestOperation, 
which name does not suggest that it is a concrete class. (and it's 
coherent with the Ldap grammar, where requests and response are seen as 
Protocol Operations)

>> To be short :
>> Q1 : Should we add an 'I' in front on interface that are not 
>> obviously seen as interfaces (like BindRequest : renamed to 
>> IBindRequest) (I mean to avoid a collision between an interface name 
>> and a class name) ?
> Hmmm I've never like this style. -1.

I have used it, but IList sounds strange and IMap looks like the mail 
protocol to me :) So let's avoid M$ C# and Hungarian notations to close 
source :)

>> Q2 : Should we add an 'I' in front of *all* interfaces, breaking the 
>> JLS rules ? (so Message will be renamed to IMessage, even if it's 
>> obvious that Message cannot be a concrete class)
> Yeah -1 on that.

ok, definitively a -1, I think.

>> Q3 : Should we add 'Abstract' in front of abstract class ?
> +1

Ok, me too.

>> Q4 : if Q1 and Q2 is *NO !!!*, then which name should we use for 
>> class which implements interface : ConcreteBindRequest, 
>> BindRequestImpl ?
> Either is fine w/ me as long as we're consistent.  Concrete prefix is 
> not bad.  I kind of like the fact that it's what the GoF did in their 
> examples.

I think that classes which are not seen from an API could use Concrete 
in front of their interface name. However, I'm a little bit reluctant to 
use that notation for end users classes... As I said before, the API 
users want yo manupulate a BindRequest, not a concreteBindRequest, no ?

> Alex

View raw message