Función Apply en Builder
En Kotlin tenemos varias ventajas, una de ellas son las Scope Functions, estas funciones nos ayudan a manipular nuestras instancias, creando un bloque de memoria pequeño para modificar y obtener las instancias de manera segura. Existen 5 diferentes tipos de scope functions que tienen unas propiedades particulares y son: let, run, with, apply, y also.
La propiedad particular es que dentro de nuestra lambda function y la scope function podemos tener el contexto de nuestra instancia de la manera de un it o implícitamente como un this. Además de tener el contexto también tenemos el retorno, que puede ser la misma instancia o un nuevo valor de retorno.
Para la función apply, nosotros tenemos el contexto this y nos retorna la misma instancia, en pocas palabras es equivalente a retornar un this ya modificado, la ventaja con la scope function es que no tenemos que crear funciones ni delegarlo a otra clase. Veamos un ejemplo.
En primer lugar, creamos un data class de ejemplo:
Luego, veamos cómo usamos el apply:
Como podemos observar, en primer lugar creamos una instancia de ExampleUser, luego a esa instancia le aplicamos unos nuevos valores con la función apply, en la función tenemos el contexto implícito como un this, por eso podemos usar sus variables y modificarlas para que posteriormente me retorne la misma instancia ya modificada y yo pueda volverla a guardar en la misma variable. En conclusión, esta es otra manera de crear un patrón Builder en Kotlin. En la clase lo vimos de manera distinta con fines de aprender la base del patrón de diseño.
Comentarios
Publicar un comentario