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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] An approach to describing the relationships between units-

[ Lists Home | Date Index | Thread Index ]

Emmanuil Batsis (Manos) scripsit:

> Thus, the signature to kilometer indicates a function signature where 
> two parameters are passed, one for the number to convert and one for the 
> type to convert from:
> 
> function kilometer(someNumber, someType)
> {
>    if(someType.equals("meters"))
>       return fromMetersToKilometers(someNumber);
>    // rest of elseif statements mapped to expected
>    // input types here
> }
> 
> which is bad, as the kilometer function can only accept a finite number 
> of input types at first glance.

This is a classic case for the double-dispatching pattern that is used
in Smalltalk for mixed-mode arithmetic.    Google for "double dispatch"
for details.  But in fact there is a nonarbitrary choice, namely meters,
the SI unit of distance, for the pivot.  The Kilometer object can ask
the Distance object to convert itself to meters, and then all it has
to know is one fact:  1 km = 1000 m.

-- 
John Cowan                              <jcowan@reutershealth.com>
http://www.reutershealth.com            http://www.ccil.org/~cowan
                .e'osai ko sarji la lojban.
                Please support Lojban!          http://www.lojban.org




 

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

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