Contenido del curso
Entendiendo las partes de la programación funcional
- 2

Funciones en Programación Funcional: Conceptos Básicos
03:15 min - 3

Funciones como Ciudadanos de Primera Clase en Programación
02:39 min - 4

Funciones Puras: Concepto y Ejemplos Prácticos
04:05 min - 5

Efectos Secundarios en Programación y su Impacto en el Código
03:12 min - 6

Funciones de Orden Superior en Programación
02:28 min - 7

Funciones Lambda en Programación Funcional Java
03:30 min - 8

Inmutabilidad de Datos en Programación Funcional con Java
11:16 min
Functional Programming en Java
- 9

Programación Funcional en Java SE: Conceptos y Prácticas
00:06 min - 10

Programación Funcional en Java: Práctica y Ejemplos en IntelliJ
02:48 min - 11

Programación Funcional en Java: Creación y Uso de Funciones
04:03 min - 12

Programación Funcional con Predicados en Java
04:57 min - 13

Interfaz Consumer y Supplier en Java: Uso y Ejemplos Prácticos
03:54 min - 14

Funciones Java para Transformación de Datos y Operaciones Binarias
07:10 min - 15

Creación y Uso de Interfaces Funcionales Personalizadas en Java
08:51 min - 16

Métodos de Referencia en Programación Funcional Java
04:46 min - 17

Inferencia de tipos en Java: funciones y métodos
03:53 min - 18

Uso de Expresiones Lambda en Java: Sintaxis y Aplicaciones
12:46 min - 19

Interfaz Funcional en Java: Creación y Uso de Métodos Default
04:59 min - 20

Encadenamiento de Llamadas en Programación Orientada a Objetos
Viendo ahora - 21

Composición de Funciones en Programación Funcional
06:06 min
Optional y Streams: Datos mas interesantes
- 22

Uso de la Clase Optional en Java para Manejo de Valores Nulos
12:59 min - 23

Manipulación de Streams en Java: Operaciones y Limitaciones
10:18 min - 24

Programación Funcional en Java: Uso de Streams y Operaciones Terminales
07:21 min - 25

Operaciones de Stream en Java: Intermedias y Finales
05:05 min - 26

Operaciones y Concurrente con Stream en Java
05:51 min - 27

Operaciones Terminales en Java Streams
06:18 min - 28

Operaciones Intermedias en Streams de Java
09:21 min - 29

Conversión de Strings a Listas de Enteros en Java
06:14 min
Todo junto: Proyecto Job-search
- 30

Construcción de Proyecto para Buscar Empleo Usando APIs
01:17 min - 31

Configuración y Uso de Gradle en Proyectos Java con IntelliJ
03:23 min - 32

Creación de una Herramienta de Búsqueda de Trabajo en Terminal
01:51 min - 33

Creación de Puntos de Entrada y Dependencias en Proyectos Java
05:53 min - 34

Creación de APIs RESTful con Feign y Spring Boot
09:30 min - 35

Creación de una Interfaz de Línea de Comandos con JCommander
13:05 min - 36

Validación de Argumentos en Terminal con Clases en Ciel
04:31 min - 37

Procesamiento de Argumentos y Solicitudes API en Java
11:38 min - 38

Creación de API para búsqueda de empleos con Java y CLI
08:31 min
Conclusiones
Encadenamiento de Llamadas en Programación Orientada a Objetos
Resumen
Encadenar el resultado de una ejecución con otra es una técnica que aparece constantemente en programación y que resulta fundamental cuando trabajamos con programación funcional. Conocer cómo funciona internamente te permitirá escribir código más limpio, reducir variables innecesarias y prepararte para temas como la composición de funciones.
¿Qué es chaining y por qué es tan útil?
El chaining consiste en encadenar la llamada de un resultado con respecto a otra ejecución [00:10]. En lugar de guardar cada resultado intermedio en una variable, aprovechas que cada método devuelve un objeto sobre el cual puedes seguir operando de inmediato.
Esta técnica no es exclusiva de la programación funcional, pero se utiliza intensamente en ella. Más adelante, cuando una función devuelva un resultado, ese resultado se pasará directamente a otra función, creando cadenas de transformaciones sin almacenar valores intermedios [01:10].
¿Cómo funciona chaining con StringBuilder?
Un ejemplo clásico es la clase StringBuilder [00:28]. Con ella puedes construir un string paso a paso, encadenando llamadas al método append:
java StringBuilder sb = new StringBuilder() .append("texto1") .append("texto2") .append("texto3") .append("texto4");
Cada invocación de append devuelve la misma instancia de StringBuilder, lo que permite seguir agregando texto sin crear variables adicionales.
¿Cómo crear tu propia clase con chaining?
El mecanismo interno es sencillo: cada método retorna this, es decir, la misma instancia del objeto [01:30]. Veamos una clase de ejemplo llamada Chainer:
java class Chainer {
public Chainer sayHi() { System.out.println("hola"); return this; } public Chainer sayBye() { System.out.println("bye"); return this; }
}
- Cada método imprime un mensaje y retorna
this. - Al devolver la propia instancia, el siguiente método se ejecuta sobre el mismo objeto.
Ahora puedes hacer esto en una sola línea [02:12]:
java new Chainer().sayHi().sayBye();
El resultado en consola será:
hola bye
¿Es obligatorio encadenar o se pueden guardar los resultados?
Almacenar resultados intermedios es totalmente válido [02:38]:
java Chainer chainer2 = new Chainer().sayHi(); Chainer chainer3 = chainer2.sayBye();
Sin embargo, la ventaja principal del chaining es precisamente evitar la creación de variables intermedias cuando no aportan claridad.
¿Dónde aplicarás chaining más adelante?
Esta técnica cobra especial relevancia cuando trabajas con composición de funciones [02:20]. En temas posteriores se aplica al encadenar operaciones sobre un solo tipo de dato: filtrados, conversiones y transformaciones se van agregando una tras otra sin necesidad de almacenar cada paso en una variable distinta [02:55].
Puntos clave para recordar:
- El chaining reduce el ruido de variables temporales.
- Funciona porque cada método devuelve la instancia actual con
return this. - Es la base para patrones como el builder pattern y las cadenas de streams en Java.
- Facilita la lectura cuando las operaciones siguen un flujo lógico claro.
Si ya has trabajado con StringBuilder o con streams, ahora entiendes qué ocurre detrás de escena. Practica creando tus propias clases con métodos encadenables y comparte en los comentarios qué otros usos le encuentras al chaining en tus proyectos.