#Kata Getters y Setters en Scala.

En este post te voy a explicar como funcionan los Getters y Setters en Scala.

¿Qué es un getter y un setter?.

Un getter y un setter es un mecanismo para aislar una variable dentro de una estructura de datos. Creas un método de acceso para leer y otro para asignar un valor. El uso de estos, se hace por convención, no obtienes ninguna ganancia al usarlos, pero tampoco te va a perjudicar si los incluyes en tus clases.

 

Getters y Setters estilo «bean».

Java, al menos las versiones que conozco, que son pocas, no tienen el concepto de propiedad. Los getters y setters son métodos. A diferencia de otros lenguajes que contemplan un tratamiento distinto.

class MyClass {
var _myField: String = _
def setMyField(myField:String) = {
this._myField = myField
}
def getMyField() ={
_myField
}
}
var myClass = new MyClass()
myClass.setMyField("myField")
println(myClass.getMyField())

Read-only getters.

En algún momento tendrás que construir objetos inmutables, o con valores solo de lectura. Para esto únicamente tienes que generar el Getter, sin especificar el Setter.

class MyReadOnlyClass(_myReadOnlyField:String) {
def getMyReadOnlyField() = {
_myReadOnlyField
}
}
var myClass = new MyReadOnlyClass("ReadOnly")
println(myClass.getMyReadOnlyField())

Getters y Setters con BeanProperty.

Puedes utilizar la anotación BeanProperty para que el intérprete genere los getters o setters por ti.

import scala.beans.{BeanProperty, BooleanBeanProperty}
class MyClass {
@BeanProperty
var myField = ""
@BooleanBeanProperty
var myBooleanProperty = false
@BooleanBeanProperty
val myReadOnlyProperty = true
}
var myClass = new MyClass()
myClass.setMyField("myField")
println(myClass.getMyField())
myClass.setMyBooleanProperty(true)
println(myClass.isMyBooleanProperty)
println(myClass.myReadOnlyProperty)

Gustavo Sánchez

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.

Site Footer