Guía completa de Tipos de Datos y Patrones de Diseño en Programación

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,69 KB

Filter

Dada una colección de elementos y una condición, filter filtra los elementos que no la cumplen y devuelve la colección de elementos que sí. Cada elemento del nuevo arreglo es el resultado de filtrar cada elemento del arreglo original por la condición. La condición se define mediante una función callback, que se pasa como argumento a filter.

Reduce

En comparación con sus primos, esta función usa 3 argumentos. El valor inicial es opcional; si no se proporciona, toma el primer elemento de la secuencia. Contrario a sus primos, no siempre regresa un arreglo.

Subtipos

Un tipo S es un subtipo de un tipo T, si una instancia de S puede utilizarse con seguridad en cualquier lugar donde se espere una instancia de T. Esto se traduce a: si puede usar una instancia de un tipo cuando se esté esperando la instancia de otro, estos dos tienen una relación de subtipos.

Subtipos Nominales

Se implementa mediante la herencia de clases. Nos permite utilizar una instancia de un tipo siempre que se espere una instancia del que heredamos.

  • La clase Animal es la clase base con la propiedad nombre y el método comer().
  • La clase Perro hereda de Animal y puede acceder a sus propiedades y métodos.
  • La clase Perro define su propio método ladrar().
  • Se crea una instancia de Perro y se llaman a sus métodos.

Subtipos Estructurales

No requiere que indiquemos la relación de subtipado explícitamente en el código. Podemos utilizar la instancia de un tipo X cuando se esté esperando un tipo Y, siempre que tengan una estructura similar; tienen que tener exactamente los mismos miembros y, opcionalmente, miembros particulares.

Duck Typing

Si parece pato, camina como pato y habla como pato, es un pato.

Tipos Superiores

Un tipo al que le podemos asignar cualquier valor, también se denomina superior. Cualquier otro tipo es un subtipo de este tipo.

Tipos Inferiores

Un tipo que es el subtipo de cualquier otro tipo se llama tipo inferior porque se sitúa en la parte inferior de la jerarquía del subtipado. Para ser un subtipo de cualquier otro tipo posible, debe tener los miembros de cualquier otro tipo posible.

Unknown

Tipo de una variable cuyo tipo exacto no se puede determinar en tiempo de compilación. Permite manejar datos de diversas fuentes o con estructuras variables, sin comprometer la integridad de los datos.

Unknown vs Any

Ambas se utilizan para representar valores cuyo tipo exacto no se conoce en tiempo de compilación.

Empty Type

Es un tipo que no tiene valor. No se puede instanciar una variable de tipo vacío.

Decoradores y Clausuras

Factory

Es un patrón de diseño creativo cuyo objetivo es crear objetos de forma flexible y segura.

¿Cómo funciona?

  • Se crea una interfaz o clase abstracta.
  • Se crean clases concretas que implementan la interfaz o clase abstracta.
  • Se define una clase fábrica que contiene un método para crear objetos.

Patrón Decorador

Es un patrón de diseño de software de comportamiento que amplía el comportamiento de un objeto sin modificar la clase del objeto.

¿Cómo funciona?

  • Se crea una interfaz o clase abstracta que representa los objetos a decorar.
  • Se crean clases concretas que implementan la interfaz o clase abstracta.
  • Se define una clase abstracta o interfaz para los decoradores.
  • Cada clase decoradora contiene una referencia al objeto que decora y un método para implementar la funcionalidad adicional.

Clausuras

Es una variable externa capturada dentro de un lambda o función. Son más que una simple función: registran el entorno donde se creó la función y mantienen el estado entre las llamadas de la misma.

Funciones Reanudables o Generadoras

Es una función que mantiene un registro de su propio estado. Cada vez que se le llama no se ejecuta desde el principio, sino que reanuda la ejecución desde donde la dejó la última vez. Esta función se devuelve utilizando una sentencia yield.

Programación Genérica

Es un paradigma de programación que permite escribir código más flexible y reutilizable. Se basa en el uso de parámetros de tipo. Estos representan los tipos de datos con los que trabajará el código genérico.

Tipo de Dato Genérico o Tipo T

Es un identificador para un nombre de tipo genérico. Los parámetros de tipo T se utilizan como marcadores de posición. Se suele usar la primera letra (T, U, V).

Estructura de Dato Genérico

Es una estructura de datos que puede almacenar y manipular datos de cualquier tipo. Esto se consigue mediante el uso de parámetros de tipo genérico.

Iteradores

Es un objeto que permite recorrer una estructura de datos. Proporciona una interfaz estándar que oculta a los clientes la forma real de la estructura de datos.

¿Qué es la programación genérica?

Es un paradigma de programación que permite escribir código más flexible y reutilizable.

Restricciones Genéricas

Nos ayudan para garantizar la seguridad y la previsibilidad del código.

  • Se utilizan para especificar que un tipo genérico debe implementar una interfaz específica.
  • Esto garantiza que el tipo genérico tenga las propiedades y métodos necesarios para funcionar correctamente.
  • La función extiende la interfaz en T por lo cual garantiza que cualquier tipo de dato que llegue tiene que tener la implementación de la interfaz.

Entradas relacionadas: