Saltar al contenido principal
Active Object

Propósito

El patrón de diseño de objeto activo desacopla la ejecución del método de la invocación del método para los objetos que residen en su propio hilo de control. El objetivo es introducir la concurrencia mediante el uso de la invocación de métodos asíncronos y un planificador para manejar solicitudes.


iluwatarAlrededor de 1 minConcurrencyPerformance
Data Locality

Propósito

Acelera el acceso a la memoria organizando los datos para aprovechar la caché de la CPU.

Las CPU modernas disponen de cachés para acelerar el acceso a la memoria. Éstas pueden acceder mucho más rápido a la memoria adyacente a la memoria a la que se ha accedido recientemente. Aprovéchate de ello para mejorar el rendimiento aumentando la localidad de los datos, manteniéndolos en memoria contigua en el orden en que los procesas.


iluwatarMenos de 1 minutoBehavioralGame programmingPerformance
Dirty Flag

También conocido como

  • IsDirty pattern

Propósito

Evitar la costosa readquisición de recursos. Los recursos conservan su identidad, se guardan en algún almacenamiento de acceso rápido y se reutilizan para evitar tener que adquirirlos de nuevo.

Diagrama de clases


iluwatarMenos de 1 minutoBehavioralGame programmingPerformance
Double Buffer

Propósito

Doble búfer es un término utilizado para describir un dispositivo que tiene dos búferes. El uso de varios búferes aumenta el rendimiento global de un dispositivo y ayuda a evitar cuellos de botella. Este ejemplo muestra el uso de doble búfer en gráficos. Se utiliza para mostrar una imagen o un fotograma mientras se almacena en el búfer otro fotograma que se mostrará a continuación. Este método hace que las animaciones y los juegos parezcan más realistas que los realizados en modo de búfer único.


iluwatarAlrededor de 3 minBehavioralPerformanceGame programming
Flyweight

Propósito

Utilice la compartición para dar soporte a un gran número de objetos finos de forma eficiente.

Explicación

Un ejemplo real

La tienda del alquimista tiene estanterías llenas de pociones mágicas. Muchas de las pociones son las mismas, por lo
que no es necesario crear un nuevo objeto para cada una de ellas. En su lugar, una instancia de objeto puede
representar
múltiples elementos de la estantería para que la huella de memoria siga siendo pequeña.


iluwatarAlrededor de 2 minStructuralGang of FourPerformance
Health Check Pattern

También conocido como

Health Monitoring, Service Health Check

Propósito

Garantizar la estabilidad y resistencia de los servicios en una arquitectura de microservicios proporcionando una forma de supervisar y diagnosticar su estado.

Explicación

En la arquitectura de microservicios, es crítico comprobar continuamente la salud de los servicios individuales. El Health Check Pattern es un mecanismo para que los microservicios expongan su estado de salud. Este patrón se implementa incluyendo un punto final de comprobación de salud en los microservicios que devuelve el estado actual del servicio. Esto es vital para mantener la resistencia del sistema y la disponibilidad operativa.


iluwatarAlrededor de 6 minBehavioralPerformanceMicroservicesResilienceObservability
Identity Map

Propósito

Garantiza que cada objeto se cargue una sola vez guardando cada objeto cargado en un mapa.
Busca objetos utilizando el mapa cuando se refiere a ellos.

Explicación

Ejemplo del mundo real

Estamos escribiendo un programa que el usuario puede utilizar para encontrar los registros de una persona determinada en una base de datos.


iluwatarAlrededor de 3 minBehavioralPerformanceData access
Lazy Loading

Propósito

La carga diferida (Lazy loading en inglés) es un patrón de diseño comúnmente usado para diferir
la inicialización de un objeto hasta el punto en que se necesita. Puede
contribuir a la eficiencia en la operación del programa si se usa de manera adecuada.

Diagrama de clases


iluwatarMenos de 1 minutoIdiomPerformance
Object Pool

También conocido como

Resource Pool

Propósito

Cuando los objetos son costosos de crear y solo se necesitan durante cortos períodos de tiempo, es ventajoso utilizar el
patrón de Object Pool. El Object Pool proporciona una caché para objetos instanciados, rastreando cuáles están en uso y
cuáles están disponibles.


iluwatarAlrededor de 1 minCreationalGame programmingPerformance
Retry

Propósito

Reintentar de forma transparente determinadas operaciones que implican la comunicación con recursos externos, en particular a través de la red, aislando el código de llamada de los detalles de implementación del reintento.

Explicación

El patrón de reintento consiste en reintentar operaciones sobre recursos remotos a través de la red un número determinado de veces. Depende estrechamente de los requisitos empresariales y técnicos: ¿Cuánto tiempo permitirá la empresa que espere el usuario final hasta que finalice la operación? ¿Cuáles son las características de rendimiento del recurso remoto durante los picos de carga, así como de nuestra aplicación a medida que más hilos esperan la disponibilidad del recurso remoto? Entre los errores devueltos por el servicio remoto, ¿cuáles pueden ignorarse con seguridad para volver a intentarlo? ¿Es la operación idempotent?


iluwatarAlrededor de 3 minBehavioralPerformanceCloud distributed