Pratrones de diseño
Enviado por Alejandro Gómez • 16 de Octubre de 2018 • Apuntes • 362 Palabras (2 Páginas) • 147 Visitas
Patrones de diseño
Se refiere a una solución recurrente que ha sido aplicada muchas veces y que ha sido considerada aplicable para solucionar dificultades de procesos.
No son una librería ni un framework, es una idea.
No son fragmentos de código que resuelven mágicamente tu código.
Hay tres tipos diferentes de diseños de software
Creacional: Crear objetos y cómo hacerlo correctamente
Abstract Factory
Factory Method
Singleton
Estructural: De qué manera se debe estructura el código, relaciones entre entidades y clases
Adapter
Decorator
Façade
De comportamiento: cómo deberían comportarse tu código o pedazos del mismo para resolver su funcionamiento
Observer
Strategy
Template Method
¿Cómo es que los patrones de diseño resuelven problemas de diseño?
Encontrando objetos adecuados
Determinando la granularidad de objetos
Especificando interfaces de objetos
Especificando implementaciones de objetos
Mejorando la reusabilidad
Soporta la extendabilidad
Anti-patrones
Es hacer algo mal con buenas intenciones al momento de codificar
Aplicar un patrón de diseño en el concepto erróneo
Generalmente los anti-patrones son resultado de que un desarrollador no entendió bien un patrón de diseño.
STRATEGY PATTERN (Jamaicon Sports)
Encapsula lo que varia.
Se usa encapsulamiento y también se usa polimorfismo.
Hay que encapsular las cosas que varían dentro de mismos objetos (Ejemplo de Mario Kart)
Dejar de usar las implementaciones y mejor poner una interfaz para cada comportamiento, una para el botado y otra para el desinflado.
Ejemplo de programación con interfaz:
Animal animal = new Cat();
animal.makeSound();
Define una familia de algoritmos,
OBSERVER PATTERN (comportamiento)
Whatsapp es una implementación de este patrón
Publicadores + Suscriptores = Observer Pattern
Ejemplo de notificaciones en Clash of Clans
DECORATOR PATTERN (estructural)
Usa el principio de diseño las clases deben de estar abiertas para ser extendidas pero cerradas para ser modificadas.
Agrega funcionalidad adicional a un objeto dinámico que ya funcionaba independientemente. Esto se hace con la finalidad de extender la funcionalidad.
...