- From: John Cowan <cowan@locke.ccil.org>
- Date: Tue, 5 Oct 1999 12:41:17 -0400 (EDT)
- To: lehors@w3.org (Arnaud Le Hors)
- Cc: www-dom@w3.org
Arnaud Le Hors scripsit:
> John Cowan wrote:
> >
> > Just because an object implements Attr is no guarantee
> > that it is an attribute.
>
> Is this because in your implementation the same class is used for
> different types of nodes? I bet it is.
Indeed.
> I used to do the same. Basically
> all the HTML*Element interfaces were implemented on the same class. But
> I finally decided that it was a bug in my implementation to make
> instanceof unreliable. Think about it. If instanceof(Attr) returns true,
> it'd better be an Attr node, or your users will get very confused.
Au contraire. I believe that using instanceof for type discrimination
(as in, if (x instanceof Element) do_this else if (x instanceof Attr) do_that)
is the worst kind of bogus OOP. My implementation makes zero
guarantees about underlying classes, how many or with what crossovers.
BTW, I don't see how you can implement all HTML*Element interfaces with
one class in Java, since some of the instance methods have incompatible
return types, and Java doesn't allow overloading on the return type.
I needed IIRC six classes.
--
John Cowan cowan@ccil.org
I am a member of a civilization. --David Brin
Received on Tuesday, 5 October 1999 11:58:45 UTC