> Thanks, although I'm a little confused ;-)
>
> What benefit does CommonsLinkedList give? A NodeCachingLinkedList class
> is allowed to subclass LinkedList directly. The licencing issue was that
> some of the methods in NodeCachingLinkedList were copied verbatim,
> especially noted in the javadoc. A reimplementation of
> NodeCachingLinkedList that directly extends LinkedList would be fine
> (written solely from the spec/idea, no copied code), unless
> CommonsLinkedList gives us something extra. I feel like I've missed
> something!

Good question. You're right that CommonsLinkedList doesn't really give
any extra benefit, at least in terms of features it offers. However, I
think it is nice in an OO sense, and it might be useful again in the
future.

CommonsLinkedList is just another implementation of LinkedList,
except, perhaps, that it is a little easier to subclass than
LinkedList. This is a particularly useful for implementing
NodeCachingLinkedList. NodeCachingLinkedList extends
CommonsLinkedList. To implement caching it just overrides the
CommonLinkedList's node creation and node removal methods. By having
two classes I think we get a really nice separation of concerns: one
class knows about being a list, the other knows about caching. I think
that merging them together would result in a much messier
implementation. Just my opinion, of course. :-)

Another consideration is the fact that CommonsLinkedList might be a
nice class to use for future adaptions to LinkedList. The
standard LinkedList is pretty much opaque to subclasses. This is good
for a public API, but it makes it pretty difficult to
extend. CommonsLinkedList might be useful to keep around as a package
visible class.

Rich



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

Reply via email to