OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: SAX2 RFD: Inheritance vs. Modification vs. Amalgamation

[ Lists Home | Date Index | Thread Index ]
  • From: David Brownell <david-b@pacbell.net>
  • To: David Megginson <david@megginson.com>
  • Date: Wed, 19 May 1999 14:09:44 -0700

David Megginson wrote:
> 
> 1. Create a new interface, org.xml.sax.Parser2, that extends
>    org.xml.sax.Parser.
> 
>    PRO: - provides nice, two-way compatibility
>         - easy to write adapters for existing SAX 1.0 drivers.
>    CON: - subclassing always leads to crime (see the GOF book for
>           copious warnings).

Actually, strike that "con" -- this isn't subclassing, it's
instead "subtyping", since Parser is an interface not a class.

Inheriting interfaces can't cause the crimes you'd get by relying
on parent class implementation artifacts!

My preference is clearly for #1 ... it's the standard way to
evolve existing interfaces in Java and most other interface
oriented frameworks.


> 2. Add the methods to org.xml.sax.Parser, and require applications to
>    catch NoSuchMethodException when using the new methods, in case
>    they're concerned about what version they're dealing with.

As Miles recently noted, this depends on everyone upgrading to
conform to the Java 2 standard.  (I recall the internal discussions
at the time.  This was a conscious change in behavior; JDK 1.1 and 1.0
are now viewed as being in error.)  While desirable, it's not a
thing I see happening very quickly ... particularly in embedded
systems which conform to the JDK 1.1 behavior!!

The motivation for changing this depended on ease of evolution in
the specific case where interface definers have strong control
over all implementations of the interface ... which clearly is
not the case with SAX!!  (Note that this change removes one of
the incentives to use abstract base classes inappropriately!)


> 3. Create a separate interface org.xml.sax.ParserProps (or something
>    like that), and require SAX2 drivers to implement both interfaces.

The primary difference between this and #1 is that this defines another
interface, and I don't see a benefit to that.

- Dave

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS