Extending ColdFusion Components And Its Impact On Page Performance

<cfcomponent
	displayname="Person"
	extends="AbstractBaseComponent"
	output="false"
	hint="Handles base functionality for the 'person' package of objects.">
 
 
	<!--- Set default properties. --->
	<cfset VARIABLES.Instance = StructNew() />
	<cfset VARIABLES.Instance.FirstName = "" />
	<cfset VARIABLES.Instance.LastName = "" />
 
 
	<cffunction name="Init" access="public" returntype="Person" 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="GetFirstName" access="public" returntype="string" output="false"
		hint="Returns first name.">
 
		<cfreturn VARIABLES.Instance.FirstName />
	</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="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