[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: SAX2: DTDDeclHandler (minimalist position)

  • From: uche.ogbuji@f...
  • To: Elliotte Harold - java FAQ <elharo@m...>
  • Date: Fri, 26 Mar 1999 19:39:02 -0700

minimalist position
> > public interface DTDDeclHandler
> > {
> >     public final static int ATTRIBUTE_DEFAULTED = 1;
> >     public final static int ATTRIBUTE_IMPLIED = 2;
> >     public final static int ATTRIBUTE_REQUIRED = 3;
> >     public final static int ATTRIBUTE_FIXED = 4;
> > 
> 
> How committed are you to using integer constants? I know this is common,
> but it tends to lend itself to bad code. Some people prefer a solution
> like this:
> 
> public class AttributStatus {
> 
>   public final static AttributeStatus ATTRIBUTE_DEFAULTED = 
>    new AttributeStatus();
>   public final static AttributeStatus ATTRIBUTE_IMPLIED =
>    new AttributeStatus();
>   public final static AttributeStatus ATTRIBUTE_FIXED =   
>    new AttributeStatus();
>   public final static AttributeStatus ATTRIBUTE_REQUIRED =   
>    new AttributeStatus();
> 
>   private AttributeStatus() {}
> 
> }
> 
> This creates four menmonic constants you want and gives them a checkable
> type.  New constants can't be created because of the private constructor.
> And there's no chance that anybody's going to write code like
> 
>   if (getAttributeStatus() == 1) {
>    doSomething();
>   }
> 
> Programmers are more or less forced to use the constants. What do you
> think?

I personally take a very dim view of systems trying to "force" programmers 
into intrinsically good practices.  Programmers can abuse any system you 
present, and at some point you have to accept that they are adults, and must 
be free to cut off their own noses if they wish.

The good programming practice of replacing "magic numbers" with descriptive 
constants is even older than the structured programming movement, and any 
programmer who writes

if (getAttributeStatus() == 1)
{
    doSomething();
}

when

if (getAttributeStatus() == ATTRIBUTE_DEFAULTED )
{
    doSomething();
}

Fully deserves his own bugs, or roasting at the next code-review.

Furthermore, I've been thinking of proposing that the SAX2 interfaces be 
specified in IDL rather than Java (or at least publishing an IDL translatiuon 
when the interfaces are stabilized), and your proposal wouldn't wash in IDL.

-- 
Uche Ogbuji
FourThought LLC, IT Consultants
uche.ogbuji@f...	(970)481-0805
Software engineering, project management, Intranets and Extranets
http://FourThought.com		http://OpenTechnology.org



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i...
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@i... the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@i... the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@i...)


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.