On 4/28/11 6:28 PM, Stefan Seelmann wrote:
This is not an easy choice.

The problme is that the user might be puzzled to see that a
LdapConnection.search( SearchRequest ) returns a cursor<SearchResponse>  but
that the LdapConnection.search( base, filter, scope, attrs... ) returns a
cursor<Entry>.

Using send( Request ) instead first makes the API lighter (we don't have to
create one send() method per type of request, it can be hidden in the
LdapConnection class) and it's also for advanced users.
Another idea: We have two interfaces: LdapConnection and
LdapAsyncConnection. What about a third interface (e.g.
AdvancedLdapConnection, need to find a better name) which extends
LdapConnections. Then we can move all the methods for advanced users
to this new interface. Then the LdapConnection interface is much
smaller. We still can have a single LdapNetworkConnection class that
implements all three interfaces.

Thoughts?
We can do that. However, I would make the LdapAdvancedConnection interface inheriting from LdapConnection. The following hierarchy would make sense, IMHO :

LdapAdvancedConnection extends LdapAsyncConnection extends LdapConnection



--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to