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/cf-talk@houseoffusion.com/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to