Saltar al contenido principal
Acyclic Visitor

Propósito

Permitir añadir nuevas funciones a jerarquías de clases existentes sin que estas se vean afectadas, y sin crear los problemáticos círculos de dependencias que son inherentes al patrón GoF (Gang of Four) Visitor.

Explicación

Ejemplo del mundo real

Tenemos una jerarquía de clases módem. Los modems de esta jerarquía deben ser visitados por un algoritmo externo basándose en unos filtros (el módem es compatible con Unix o DOS).


iluwatarAlrededor de 2 minBehavioralExtensibility
Bytecode

Propósito

Permite codificar el comportamiento como instrucciones para una máquina virtual.

Explicación

Ejemplo del mundo real

Un equipo está trabajando en un nuevo juego en el que los magos luchan entre sí. El comportamiento de los magos necesita ser cuidadosamente ajustado e iterado cientos de veces a través de pruebas de juego. No es óptimo pedir al programador que haga cambios cada vez que el diseñador del juego quiere variar el comportamiento, así que el comportamiento del mago se implementa como una máquina virtual basada en datos.


iluwatarAlrededor de 4 minBehavioralGame programming
Chain of responsibility

También conocido como

  • Chain of Command
  • Chain of Objects
  • Responsibility Chain

Propósito

Evita acoplar el emisor de una petición a su receptor dando a más de un objeto la oportunidad de gestionar la petición. Encadena los objetos receptores y pasa la solicitud a lo largo de la cadena hasta que un objeto la gestione.


iluwatarAlrededor de 3 minBehavioralGang of FourDecoupling
Client Session

También conocido como

  • User session

Propósito

El patrón de diseño Client Session tiene como objetivo mantener el estado y los datos de un usuario a través de múltiples peticiones dentro de una aplicación web, asegurando una experiencia de usuario continua y personalizada.


iluwatarAlrededor de 3 minBehavioralSession managementWeb development
Collecting Parameter

También conocido como

  • Collector
  • Accumulator

Propósito

Su objetivo es simplificar los métodos que recopilan información pasando un único objeto de colección a través de varias llamadas a métodos, permitiéndoles añadir resultados a esta colección en lugar de que cada método cree su propia colección.


iluwatarAlrededor de 4 minBehavioralAccumulationGeneric
Command

También conocido como

  • Action
  • Transaction

Propósito

El patrón de diseño Command encapsula una petición como un objeto, permitiendo así la parametrización de clientes con colas, peticiones y operaciones. También permite soportar operaciones deshechas.


iluwatarAlrededor de 4 minBehavioralGang of Four
Commander

También conocido como

  • Distributed Transaction Commander
  • Transaction Coordinator

Propósito

La intención del patrón Commander en el contexto de las transacciones distribuidas es gestionar y coordinar transacciones complejas a través de múltiples componentes o servicios distribuidos, asegurando la consistencia e integridad de la transacción global. Encapsula comandos de transacciones y lógica de coordinación, facilitando la implementación de protocolos de transacciones distribuidas como commit de dos fases o Saga.


iluwatarAlrededor de 3 minBehavioralCloud distributedMicroservicesTransactions
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