Strategy
Propósito
Según el libro "Patrones de Diseño" [29] el patrón Strategy "define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables. Permite que un algoritmo varíe independientemente de los clientes que lo usan".
También conocido como
Policy
Estructura

Participantes
Estrategia:
declara la interfaz común a todos los algoritmos permitidos. El Contexto usa esta interfaz para llamar al algoritmo definido por una EstrategiaConcreta.
EstrategiaConcreta:
implementa el algoritmo usando la interfaz Estrategia.
Contexto:
se configura con una variable EstrategiaConcreta.
mantiene una referencia a una variable Estrategia.
puede definir una interfaz que permita a la Estrategia acceder a sus datos.
Implementación
No se observan impedimentos y/o modificaciones de la estructura original del patrón para su implementación en Go.
Código de ejemplo
En este ejemplo queremos definir tres estrategias concretas que pueden realizar distintas operaciones matemáticas. Cuando se crea el contexto se establece que estrategia deberá utilizar.
Implementación:
Se puede probar la implementación del patrón de la siguiente forma:
Código de ejemplo | Ejecutar código
Atención: Esta publicación se encuentra abandonada. Puede acceder a la versión vigente en https://leanpub.com/designpatternsingo
Última actualización
¿Te fue útil?