FILE ID: /techblog/228_Fun-with-Functions-and-CFCs-IV-Public-Method-Different-from-the-Private-Method/ Dec 13, 2007

Fun with Functions and CFCs IV - Public Method, Different from the Private Method

Here's an interesting idea. Probably not a good one, but check it out. What if external calls to a CFC method execute something different than when you call that method from within the CFC? It's easy. Here's the code:

<cfcomponent>

     <cffunction name="init" access="public">
          <cfreturn this>
     </cffunction>

     <cffunction name="privateMethod" access="private">
          <cfreturn "This is a Private Method!">
     </cffunction>

     <cffunction name="publicMethod" access="public">
          <cfreturn "This is a Public Method!">
     </cffunction>

     <cfset this.genericMethod = publicMethod />
     <cfset variables.genericMethod = privateMethod />

</cfcomponent>

Now private calls to genericMethod() will give you the private method message, and public calls to myCFC.genericMethod() will return the public method message.

I honestly can not think of a use case for this one. Got any? leave a comment.