Extending ColdFusion Components And Its Impact On Page Performance

<cfcomponent
	displayname="FullGirl"
	output="false"
	hint="Handles all the girl functionality.">
 
 
	<!--- Set unique ID for this instance. --->
	<cfset VARIABLES.InstanceID = CreateUUID() />
 
	<!--- Set default properties. --->
	<cfset VARIABLES.Instance = StructNew() />
	<cfset VARIABLES.Instance.FirstName = "" />
	<cfset VARIABLES.Instance.LastName = "" />
	<cfset VARIABLES.Instance.Gender = "Female" />
 
 
	<cffunction name="Init" access="public" returntype="FullGirl" output="false"
		hint="Returns an initialized Person instance.">
 
		<!--- Define arguments. --->
		<cfargument name="FirstName" type="string" required="false" default="" />
		<cfargument name="LastName" type="string" required="false" default="" />
 
		<!--- Store arguments. --->
		<cfset VARIABLES.Instance.FirstName = ARGUMENTS.FirstName />
		<cfset VARIABLES.Instance.LastName = ARGUMENTS.LastName />
 
		<!--- Return This reference. --->
		<cfreturn THIS />
	</cffunction>
 
 
	<cffunction name="EqualTo" access="public" returntype="boolean" output="false"
		hint="Determines if this ">
 
		<!--- Define arguments. --->
		<cfargument name="Comparable" type="any" required="true" />
 
		<!--- Try to compare this object instance to the passed in. --->
		<cftry>
 
			<!--- Compare this ID to that ID. --->
			<cfreturn NOT Compare(
				VARIABLES.InstanceID,
				ARGUMENTS.Comparable.GetInstanceID()
				) />
 
			<cfcatch>
 
				<!--- An error occurred, return false. --->
				<cfreturn false />
 
			</cfcatch>
		</cftry>
	</cffunction>
 
 
	<cffunction name="GetFirstName" access="public" returntype="string" output="false"
		hint="Returns first name.">
 
		<cfreturn VARIABLES.Instance.FirstName />
	</cffunction>
 
 
	<cffunction name="GetGender" access="public" returntype="string" output="false"
		hint="Returns gender.">
 
		<cfreturn VARIABLES.Instance.Gender />
	</cffunction>
 
 
	<cffunction name="GetInstanceID" access="public" returntype="string" output="false"
		hint="Returns the instance's unique ID.">
 
		<cfreturn VARIABLES.InstanceID />
	</cffunction>
 
 
	<cffunction name="GetLastName" access="public" returntype="string" output="false"
		hint="Returns last name.">
 
		<cfreturn VARIABLES.Instance.LastName />
	</cffunction>
 
 
	<cffunction name="SetFirstName" access="public" returntype="void" output="false"
		hint="Sets first name.">
 
		<!--- Define arguments. --->
		<cfargument name="FirstName" type="string" required="true" />
 
		<!--- Set value. --->
		<cfset VARIABLES.Instance.FirstName = ARGUMENTS.FirstName />
		<cfreturn />
	</cffunction>
 
 
	<cffunction name="SetGender" access="public" returntype="void" output="false"
		hint="Sets gender.">
 
		<!--- Define arguments. --->
		<cfargument name="Gender" type="string" required="true" />
 
		<!--- Set value. --->
		<cfset VARIABLES.Instance.Gender = ARGUMENTS.Gender />
		<cfreturn />
	</cffunction>
 
 
	<cffunction name="SetLastName" access="public" returntype="void" output="false"
		hint="Sets last name.">
 
		<!--- Define arguments. --->
		<cfargument name="LastName" type="string" required="true" />
 
		<!--- Set value. --->
		<cfset VARIABLES.Instance.LastName = ARGUMENTS.LastName />
		<cfreturn />
	</cffunction>
 
</cfcomponent>

For Cut-and-Paste