Comportamiento

Los Patrones de Diseño de Comportamiento se centran en la comunicación y la interacción entre los objetos. Se ocupan de la asignación de responsabilidades y la definición de algoritmos de interacción que hacen que los objetos trabajen juntos de manera efectiva.

Su objetivo principal es asegurar que el flujo de control sea claro y que el acoplamiento entre objetos sea bajo. En esencia, responden a la pregunta: ¿Cómo pueden los objetos conversar y cooperar para lograr una tarea?

Propósito Clave: Flujo y Colaboración

Estos patrones buscan mejorar la modularidad y la flexibilidad al definir:

  1. Patrones de Interacción: Establecen estructuras para las comunicaciones complejas, como la notificación de muchos objetos ante un cambio (Observer) o el manejo de una solicitud por una secuencia de objetos (Chain of Responsibility).

  2. Encapsulamiento del Comportamiento: Permiten cambiar el algoritmo o el comportamiento de un objeto sin modificar su clase, como en el patrón Strategy.

Ejemplos Fundamentales

Patrón
Concepto Principal
Analogía Simple

Observer (Observador)

Define una dependencia uno-a-muchos. Cuando un objeto cambia de estado (el Sujeto), todos sus dependientes (Observadores) son notificados.

Suscribirse a un canal de noticias: cuando se publica una noticia, todos los suscriptores reciben una alerta.

Strategy (Estrategia)

Permite intercambiar un algoritmo o comportamiento en tiempo de ejecución. El cliente selecciona la estrategia deseada.

Un GPS que puede seleccionar diferentes rutas (algoritmos): la más rápida, la más corta, la que evita peajes, etc., sin cambiar el sistema de navegación.

Command (Comando)

Encapsula una solicitud (una acción) como un objeto, permitiendo parametrizar, poner en cola, registrar o deshacer operaciones.

El mando a distancia de la televisión: al pulsar un botón, la acción (CambiarCanal, SubirVolumen) se encapsula y se envía a la televisión como un objeto.

State (Estado)

Permite que un objeto cambie su comportamiento cuando su estado interno cambia.

Un objeto semáforo que, dependiendo de su estado interno (Verde, Amarillo, Rojo), ejecuta una acción diferente al recibir el mismo comando (Avanzar).

Chain of Responsibility (Cadena de Responsabilidad)

Pasa una solicitud a lo largo de una cadena de objetos. Cada objeto en la cadena decide si procesa la solicitud o la pasa al siguiente.

Una solicitud de préstamo que pasa por diferentes niveles de aprobación (gerente, director, etc.) hasta que uno puede manejarla.

Última actualización