El objetivo del patrón Chain of Responsibility es permitir que múltiples objetos manejen una solicitud sin especificar explícitamente cuál de ellos lo hará. Esto crea una cadena de objetos receptores y pasa la solicitud a lo largo de la cadena hasta que un objeto la maneje.
El objetivo del patrón Command es encapsular una solicitud como un objeto, lo que permite parametrizar clientes con operaciones, poner operaciones en cola, registrar solicitudes y admitir la inversión de dependencia. En resumen, este patrón desacopla el objeto que invoca la acción del objeto que la realiza.
El objetivo del patrón Iterator es proporcionar una forma de acceder secuencialmente a los elementos de una colección sin exponer su representación interna. El patrón Iterator permite recorrer una colección de elementos de manera uniforme sin importar la implementación subyacente de la colección.
El patrón Mediator promueve la comunicación indirecta entre objetos, evitando que se comuniquen explícitamente entre sí y, en su lugar, lo hagan a través de un objeto mediador. Esto reduce las dependencias entre los objetos y facilita la modificación y extensión del sistema.
El patrón Memento permite capturar y restaurar el estado interno de un objeto sin violar el encapsulamiento. Esto es útil cuando se necesita implementar operaciones de deshacer o restaurar estados anteriores.
El patrón Observer establece una relación uno a muchos entre objetos, de modo que cuando un objeto cambia de estado, todos sus dependientes son notificados y actualizados automáticamente.
El patrón State permite que un objeto altere su comportamiento cuando su estado interno cambia. Esto se logra mediante la encapsulación de los estados en objetos separados y delegando el comportamiento correspondiente al objeto actual de estado
El patrón Strategy permite definir una familia de algoritmos, encapsular cada uno de ellos y hacerlos intercambiables. Esto permite que el algoritmo varíe independientemente de los clientes que lo utilicen.
El patrón Template Method define el esqueleto de un algoritmo en una operación, permitiendo que las subclases redefinan ciertos pasos del algoritmo sin cambiar su estructura general.
El patrón Visitor permite definir una nueva operación sin cambiar las clases de los elementos sobre los que opera. Esto se logra definiendo un objeto externo (el Visitor) que realiza operaciones en objetos de una estructura de objetos compleja.
El objetivo clave del patrón Modelo-Vista-Controlador (MVC) es separar las preocupaciones en una aplicación para mejorar la modularidad, la escalabilidad y la mantenibilidad del código.