> Question in return, what exactly is delegation and can
> you give an example. [It's been mentioned both in the
> context of Java classes and link-catalogs].
Delegation is when you make a request to "something" and
instead of handling the request itself, it hands it off
to "something" else and then returns what that returns.
Sort of like a subroutine call; managers delegate tasks
to employees, and so on.
When used with object oriented systems (like those folk
write in Java) delegation presumes a shared interface.
If a class supports a set of methods, it can delegate
the implementation of those methods to any other class
that supports them. Sometimes "adapters" can be used to
patch up minor "impedence mismatches" in terms of the
signatures (or sometimes semantics) of the methods.
When one talks about implementing naming systems (GIs touch
on naming issues :-) there are three general mechanisms
to be concerned with. Delegation is one of them, sometimes
called "chaining". Redirection is another, sometimes called
"forwarding" (we all understand HTTP redirects, yes?). A
third is Partitioning -- e.g. entries in an Encyclopaedia
are partitioned alphabetically, A-B, C-E, etc, and either
a client or a server might try a partitioned search.
Since naming is so fundamental to system structuring, such
techniques show up all over the place. Hence the overlap in
terminology: it really is the same technique.
- Dave