Yes, encapsulation is an important part of OO and yes many people don't care.

If you want to maintain the encapsulation, don't set thigns in the
THIS scope - use a setter method to set them in the VARIABLES scope
(and a getter method to get them out again):

<cfscript>
 newUser = createobject("component", "user");
 newUser.setname("john");
</cfscript>

On 2/17/06, Aaron Roberson <[EMAIL PROTECTED]> wrote:
> Friends,
>
> I am learning Java and CFC development in ColdFusion at the same time.
> I keep going back and forth between the two because they complement
> each other so well. Anyways, my question is not in regards to the
> specifics of the language, but with OOP design patterns and
> encapsulation.
>
> HERE IT GOES:
>
> In my Java book it says that if a method is public, a data filed could
> be assigned a value directly, BUT doing so "violates an important
> principle of object-oriented programming -- that of data hiding using
> encapsulation.
>
> However, I have seen alot of CF developers write code that directly
> assigns values to data fields in CFC's like the following:
>
> CALLING PAGE
>
> <cfscript>
> newUser = createobject("component", "user");
> newUser.name = "john"
> newuser.setname();
> </cfscript>
>
> COMPONENT
>
> <cfcomponent hint="manages users">
>
> <cfscript>
> init();
> </cfscript>
>
> <cffunction name="init" access="public" output="no" hint="psuedo constructor">
> <cfset this.userID = "#createUUID()#">
> <cfreturn this>
> </cffunction>
>
> <cffunction name="setuser" access="public" output="no" hint="sets user info">
> <cfargument name="userID" type="UUID" required="yes">
> <cfset arguments.userID = this.userID>
> <!--- processing code --->
> </cffunction>
>
> </cfcomponent>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:232658
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to