Even if Macromedia offered the ability to do overloading based on types
I would tell everyone and their brother how bad of an idea it is.
Overloading should simply not be used in a typeless language. It doesn't
matter if CF has the ability to make guesses about types as those
guesses could be wrong. For example...

int a = 0;
double b = 0d;
float c = 0F;
char d = 0;
String e = "0";
byte f = 0;

Using a strongly typed language, all of the above are different. In CF,
all of the above are the same.

Matt Liotta
President & CEO
Montara Software, Inc.
http://www.montarasoftware.com/
V: 415-577-8070
F: 415-341-8906
P: [EMAIL PROTECTED]

> -----Original Message-----
> From: Hal Helms [mailto:[EMAIL PROTECTED]]
> Sent: Monday, September 02, 2002 1:35 PM
> To: CF-Talk
> Subject: RE: CFC theory
> 
> I was not meaning to imply that overloading should only be used for
> different number of variables, but for both number *and* type of
> variables - in other words, for method signatures. If CFCs are going
to
> do typechecking for return types and argument types, they can
certainly
> do type checking for method arguments.
> 
> Hal Helms
> Preorder "Discovering ColdFusion Components (CFCs)" at
> www.techspedition.com
> 
> -----Original Message-----
> From: Matt Liotta [mailto:[EMAIL PROTECTED]]
> Sent: Monday, September 02, 2002 4:07 PM
> To: CF-Talk
> Subject: RE: CFC theory
> 
> 
> What? If you use an if statement or an overload the same conditional
> logic still happens. It is just a matter of what syntax you use to
> accomplish it. And again IMHO, overloading is a bad choice of variable
> numbers of parameters.
> 
> Matt Liotta
> President & CEO
> Montara Software, Inc.
> http://www.montarasoftware.com/
> V: 415-577-8070
> F: 415-341-8906
> P: [EMAIL PROTECTED]
> 
> > -----Original Message-----
> > From: Hal Helms [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, September 02, 2002 1:09 PM
> > To: CF-Talk
> > Subject: RE: CFC theory
> >
> > Well, that's exactly what we have to do because the folks at
> Macromedia
> > decided not to offer overloading. But programmers shouldn't have to
> > resort to conditional code to make up for the language's deficits.
> >
> > Hal Helms
> > Preorder "Discovering ColdFusion Components (CFCs)" at
> > www.techspedition.com
> >
> > -----Original Message-----
> > From: Matt Liotta [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, September 02, 2002 3:53 PM
> > To: CF-Talk
> > Subject: RE: CFC theory
> >
> >
> > I disagree. What you are suggesting is a lame use of overloading
that
> > could easily be handled by an if statement. Simply make the address
> > parameter optional and check for its existence. IMHO, overloading
> should
> > only be used for strongly typed languages.
> >
> > Matt Liotta
> > President & CEO
> > Montara Software, Inc.
> > http://www.montarasoftware.com/
> > V: 415-577-8070
> > F: 415-341-8906
> > P: [EMAIL PROTECTED]
> >
> > > -----Original Message-----
> > > From: Hal Helms [mailto:[EMAIL PROTECTED]]
> > > Sent: Monday, September 02, 2002 12:53 PM
> > > To: CF-Talk
> > > Subject: RE: CFC theory
> > >
> > > Overloading means that a method or constructor can have multiple
> > "method
> > > signatures". For example, an overloaded constructor for Person()
> might
> >
> > > have the following Person(), Person(firstName, lastName),
> > > Person(firstName,lastName, address), etc. Not having this ability
> > means
> > > that we have to resort to all sorts of workarounds while a
standard
> OO
> >
> > > implementation of overloading would eliminate this problem.
> > >
> > > Hal Helms
> > > Preorder "Discovering ColdFusion Components (CFCs)" at
> > > www.techspedition.com
> > >
> > > -----Original Message-----
> > > From: Jeffry Houser [mailto:[EMAIL PROTECTED]]
> > > Sent: Monday, September 02, 2002 1:29 PM
> > > To: CF-Talk
> > > Subject: Re: CFC theory
> > >
> > >
> > > At 09:27 AM 9/1/2002 -0700, you wrote:
> > >
> > > > > 3. Is the data created inside a component protected from
outside
> 
> > > > > forces?  I'm a little grey on this one.  You can create
> component
> > > > > specific variables using the this scope.
> > > >
> > > >"this" scope is public, the unnamed scope is private so this gets
a
> 
> > > >YES.
> > >
> > >    :hmm:  That is interesting.  I don't like un-named scopes.  I
> wish
> > > someone at Macromedia took a little time to document this stuff.
> > >    I thought the variable was automatically put into the this
scope.
> > I
> > > have to agree with Hal on this one.  That is a kludge.  The scope
> > should
> > >
> > > have a name.  A scope named private would have been a better
option.
> > >
> > >
> > > > > 2. Do CFCs support Overloading / Overriding?  Not in related
> > > > > objects.
> > > >
> > > >Overloading no, overriding yes. (And I don't really agree that
> > > >overloading is actually *necessary* to claim 'OO-ness' - much of
> the
> > > >worst code I have seen in OO languages is because of overloading
> and
> > > >there are almost always ways around it).
> > >
> > >
> > >   Allow me to bang my head on the desk.  I was using the two terms
> > > interchangeably.
> > >   I doubled checked my OO book and it uses the term overloading
> > > exclusively.  What exactly is overriding, then?
> > >
> > >
> > > > > A child CFC inherits all parent
> > > > > methods as is.  You do not have the ability to change
> > functionality
> > > > > of inherited methods.
> > > >
> > > >Yes you do. Try the following:
> > > >
> > > >         // base.cfc:
> > > >         <cfcomponent>
> > > >                 <cffunction name="foo" returntype="string">
> > > >                         <cfreturn "I'm base.foo"/>
> > > >                 </cffunction>
> > > >         </cfcomponent>
> > > >
> > > >         // derived.cfc:
> > > >         <cfcomponent extends="base">
> > > >                 <cffunction name="foo" returntype="string">
> > > >                         <cfreturn "I'm derived.foo"/>
> > > >                 </cffunction>
> > > >         </cfcomponent>
> > > >
> > > >         // test.cfm:
> > > >         <cfset b = createObject("component","base")/>
> > > >         <cfset d = createObject("component","derived")/>
> > > >         <cfoutput>
> > > >                 b.foo() is #b.foo()#<br>
> > > >                 d.foo() is #d.foo()#<br>
> > > >         </cfoutput>
> > > >
> > > >You can pass d to anything expecting a base component instance so
> > > >substitutability is preserved and polymorphism is also preserved.
> > >
> > >   You're right.  When did this creep into the product?  I'd bet my
> > right
> > >
> > > arm that this was not supported during the beta cycle?
> > >
> > >
> > >
> > >
> > > > > 3. Do CFCs support inheritance?  Yes, they do.  However
without
> > the
> > > > > overloading / overriding it is nothing more than a fancy
> include.
> > > >
> > > >Overloading is mostly irrelevant for inheritance - in most (all?)
> OO
> > > >languages, when you inherit an overloaded set of methods, you
have
> to
> >
> > > >reimplement all of them in order to preserve overloading -
> > overloading
> > > >normally only occurs within each class definition.
> > > >
> > > >As pointed out above, CFMX does have overriding so inheritance
*is*
> 
> > > >more than a fancy include.
> > >
> > >   Yes, you are right.  I retract my original statement.  It was
> based
> > on
> > >
> > > incomplete facts.
> > >
> > >
> > >
> > > > > 4. Do CFCs support polymorphism?  I would say no.  I cannot
> create
> >
> > > > > two different methods with the same exact name, but different
> > > > > argument types.  That is the essence of polymorphism.
> > > >
> > > >No, that is overloading. Polymorphism requires overriding - see
> above
> > -
> > >
> > > >so CFMX  *does* support polymorphism. Polymorphism is 'virtual
> > > >functions' in most every OO language, something that CFMX does
> have.
> > > >
> > > > > For me, the lack of the ability to overload is what makes me
say
> > you
> > >
> > > > > cannot apply Object Oriented development
> > > >
> > > >As I say above, overloading really has nothing to do with OO. C
has
> 
> > > >overloading (Oh, yes, it does! Check out the latest ISO C
standard
> to
> >
> > > >see how they worked that in. Not for all types, admittedly, but
> they
> > > >did add it).
> > >
> > >
> > >
> > > >(Do I need to mention that I wrote the first ANSI-validated C
> > compiler,
> > >
> > > >spent eight years on the ISO C++ Standards Committee - three as
> > > >secretary
> > > >- designing parts of that language and also worked on the UK and
> ISO
> > > Java
> > > >Study Groups for a couple of years as well? :)
> > >
> > >   ;)  Then I'm sure you'll have no trouble drilling the
differences
> > > between overloading and overriding into my head?
> > >
> > >
> > >
> > > --
> > > Jeffry Houser | mailto:[EMAIL PROTECTED]
> > > Need a Web Developer?  Contact me!
> > > AIM: Reboog711  | Phone: 1-203-379-0773
> > > --
> > > My CFMX Book:
> > >
<http://www.amazon.com/exec/obidos/ASIN/0072225564/instantcoldfu-20>
> > > My Books: http://www.instantcoldfusion.com
> > > My Band: http://www.farcryfly.com
> > >
> > >
> > >
> >
> >
> 
> 
______________________________________________________________________
Get the mailserver that powers this list at http://www.coolfusion.com
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to