Los métodos getter y setter en Coldfusion 10
Uno de los principios fundamentales en la programación orientada a objetos es que el usuario sólo debe de interactuar con las propiedades del componente o clase por medio de funciones getter y setter, nunca en forma directa.
Adicionalmente, por medio de los métodos getter y setter podremos hacer validaciones de los valores recibidos o modificados:
<cfcomponent>
<cfset variables.myNumericValue = 0>
<cffunction name="getMyNumericValue" access="public" output="false" returnType="numeric">
<cfreturn variables.myNumericValue>
</cffunction>
<cffunction name="setMyNumericValue" access="public" output="false" returnType="void">
<cfargument name="myValue" type="numeric" required="true" >
<cfset variables.myNumericValue = myValue>
</cffunction>
<cfcomponent>
Uso de una propiedad en un componente <cfproperty>
• Las propiedades añadidas con <cfproperty> son vistas desde la documentación.• La etiqueta <cfproperty> contiene algunos atributos que aydan en la definición de la propiedad
• La etiqueta <cfproperty> genera automáticamente, por medio de el atributo accesors, los métodos getter y setter
Atributos de la etiqueta <cfproperty>
• name: nombre de la propiedad• default: valor por omisión de la propiedad
• displayName: nombre descriptivo de la propiedad
• required: define si la propiedad es requerida
• serializable:determina si la propiedad es serializable
• type: tipo de dato de la propiedad
El atributo Accessors
• <cfcomponent> sólo generan los getters y setters en forma automática cuando de tiene el atributo accesors = "true".Ejemplo:
<cfcomponent accessors=”true”>
<cfproperty name="dsn" displayName="dataSource" hint="Data source to be used in this component" type="string" />
<cfset variables.myNumericValue = 0>
<cffunction name="GetMyNumericValue" access="public"returnType="numeric">
<cfreturn variables.myNumericValue>
</cffunction>
<cffunction name="SetMyNumericValue" access="public" returnType="void">
<cfargument name="myValue" type="numeric" required="true" >
<cfset variables.myNumericValue = myValue>
</cffunction>
</cfcomponent>
http://www.pacoarce.com
No hay comentarios:
Publicar un comentario