C# para Unity · Sección 14

Patrones de diseño con criterio

Adapter, Facade, Mediator, Strategy, Command, Factory, Observer, Template Method, Null Object, Object Pool y los costos de acceso global.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Principios SOLID aplicados a Unity.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Integrar y coordinar con Variar, crear y notificar y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Instala Unity Hub, una versión LTS compatible y un IDE con integración para C#. Conserva un proyecto de laboratorio separado.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Integrar y coordinar y Variar, crear y notificar? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Relacionarás cada patrón con el problema que resuelve, la complejidad que agrega y una alternativa más simple cuando no sea necesario.

Al terminar podrás
  • Adapter traduce, Facade simplifica y Mediator coordina
  • Strategy, Command, Factory, Observer y Template resuelven cambios diferentes
  • Singleton, Service Locator, Null Object y Object Pool exigen límites
01
Integrar y coordinar

Adapter traduce, Facade simplifica y Mediator coordina

Adapter convierte una API al contrato esperado; Facade expone una operación de alto nivel sobre subsistemas; Mediator organiza interacciones entre colegas. Cada uno reduce un tipo distinto de conocimiento.

01

Adapter cambia el contrato visible.

02

Facade reúne pasos detrás de una intención.

03

Mediator evita referencias cruzadas entre participantes.

Comprueba lo aprendido · 01

¿Qué diferencia hay entre Facade y Mediator?

Mostrar respuesta +

Facade ofrece una entrada simple a subsistemas; Mediator coordina comunicación entre objetos que, de otro modo, se conocerían entre sí.

02
Variar y registrar acciones

Strategy, Command, Factory, Observer y Template resuelven cambios diferentes

Strategy intercambia algoritmos; Command representa una acción; Factory centraliza creación; Observer notifica; Template Method fija una secuencia con pasos variables. Elegir uno comienza por la presión concreta.

01

Strategy evita condicionales de comportamiento.

02

Command permite cola, historial o deshacer.

03

Factory separa selección y construcción del consumidor.

Comprueba lo aprendido · 02

¿Cuándo Command aporta algo que una llamada directa no ofrece?

Mostrar respuesta +

Cuando la acción necesita almacenarse, posponerse, repetirse, ponerse en cola, registrarse o deshacerse. Sin esas necesidades, una llamada puede ser más clara.

03
Controlar estado y costo

Singleton, Service Locator, Null Object y Object Pool exigen límites

Singleton y Service Locator facilitan acceso, pero ocultan dependencias y estado global. Null Object evita comprobaciones repetidas si la operación neutra respeta el contrato. Object Pool reutiliza instancias frecuentes, pero exige reiniciar todo su estado.

01

Haz explícito ciclo de vida y propietario del servicio.

02

No uses pool sin medir costo de creación o recolección.

03

Devuelve un objeto al pool en un estado conocido.

Comprueba lo aprendido · 03

¿Cuál es el fallo más peligroso de un Object Pool incompleto?

Mostrar respuesta +

Reutilizar estado residual: eventos, velocidad, objetivo o temporizadores de la vida anterior pueden afectar a la nueva instancia.

Resumen de la sección

Tu recorrido en tres ideas

  1. Adapter traduce, Facade simplifica y Mediator coordina
  2. Strategy, Command, Factory, Observer y Template resuelven cambios diferentes
  3. Singleton, Service Locator, Null Object y Object Pool exigen límites
PROFUNDIZACIÓN / LABORATORIO GUIADO

Construye y mide un sistema de proyectiles

Conecta presión de diseño, patrón elegido, alternativa simple, costo operativo y medición.

CASO

Tres armas crean proyectiles distintos; la escena muestra pausas al disparar cientos por minuto.

Procedimiento

  1. Separa variación de ataque y creación mediante contratos y una fábrica mínima.
  2. Mide Instantiate/Destroy con una carga fija y luego implementa un pool.
  3. Reinicia cada estado al obtener y devolver; repite la medición y prueba límites.

Evidencia mínima

  • Perfil anterior y posterior con la misma carga.
  • Conteo máximo, política cuando el pool se agota.
  • Cero eventos, velocidades o objetivos residuales.
Mostrar razonamiento modelo +

Strategy decide cómo atacar; Factory conoce la construcción; Object Pool aparece solo después de demostrar el costo. El consumidor no conoce clases concretas y la mejora se evalúa en la plataforma objetivo.

Para ir más lejos

¿Cuándo crecer el pool empeora memoria sin mejorar los picos?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Elegir un patrón por nombre antes de describir el problema y sus fuerzas.

ERROR 02

Agregar Singleton, Service Locator o pools sin hacer visible ciclo de vida, dependencias y estado residual.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diseña un combate con estrategias de arma, comandos de entrada, fábrica de proyectiles, eventos de salud y un pool medido.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Cada patrón elimina una dificultad concreta y se compara con una solución simple.
  • El pool reinicia todo el estado y demuestra una necesidad medida.
  • Las dependencias globales se limitan o se sustituyen por composición explícita.