Mapa mental
Behavioral Patterns
Contenido del mapa
Behavioral Patterns
Chain of Responsibility
- Ventajas y desventajas
- +Reduce el acoplamiento: Libera a un objeto de tener que saber que otro objeto maneja una petición. +Añade flexibilidad para asignar responsabilidades a objetos. -No se garantiza la recepción: Dado que las peticiones no tienen un receptor explícito, no hay garantía de que sean manejadas (la petición puede alcanzar el final de la cadena sin haber sido procesada).
- Objetivo
- Evite acoplar el remitente al receptor pasando la solicitud hasta que alguien la maneje
- Ventajas y desventajas
Command
- Ventajas y desventajas
- +Desacoplamiento de la aplicación que invoca las órdenes y la implementación de las mismos. +El conjunto de órdenes es escalable. +Permite modificar las órdenes a ejecutar en tiempo de ejecución. -Aumenta la volumen de nuestro código.
- Objetivo
- Encapsula la solicitud como objeto, lo que le permite parametrizar clientes con diferentes acciones, solicitudes de cola o registro, etc
- Ventajas y desventajas
Interpreter
- Objetivo
- Dado un lenguaje, defina la jerarquía de clases para el árbol de análisis, método recursivo para interpretarlo
- Ventajas y desventajas
- +Facilidad para cambiar la gramática, mediante herencia, dado que las diferentes reglas se representan con objetos. +Facilidad para introducir nuevas formas de “interpretar” las expresiones en la gramática. -Limitación en el tipo de gramática: si no es simple, es casi imposible implementarlo. -Limitación en el tipo de gramática: si no es simple, es casi imposible implementarlo.
- Objetivo
Iterator
- Objetivo
- Proporcionar una forma de acceder a elementos de una colección sin exponer la representación
- Ventajas y desventajas
- +Estandariza el tratado de elementos de listas con implementaciones independientes. +Se pueden realizar múltiples recorridos simultáneos. -Aumenta la jerarquía de clases.
- Objetivo
Mediator
- Objetivo
- Defina un objeto que encapsule cómo interactúa un conjunto de objetos para reducir el acoplamiento
- Ventajas y desventajas
- +Desacopla a los integrantes del sistema de sus interacciones. +Simplifica la comunicación entre objetos: los objetos que se comunican de "muchos a muchos" ahora lo harán de "uno a muchos", disminuyendo su complejidad. -Si los sistemas son demasiado grandes, las ventajas en materia de simplicidad y facilidad de modificación desaparecen.
- Objetivo
Memento
- Objetivo
- Sin violar la encapsulación, permita que el cliente capture el estado de un objeto y restaure
- Ventajas y desventajas
- +Se usa en transacciones de Bases de Datos. +Usar este patrón en operaciones de UNDO/REDO. -Los mementos son costosos, es costoso crear los objetos Memento si se tiene que almacenar todas las partes del estado del Originator. -El almacenamiento de los Memento es costoso, el cliente que desea guardar su estado, no conoce el tamaño real del Memento. -Definición de interfaces reducidas y amplias. En algunos lenguajes puede ser difícil garantizar que sólo el creador acceda al estado del memento.
- Objetivo
Observer
- Objetivo
- Deje que los objetos observen el comportamiento de otros objetos para que puedan mantenerse sincronizados
- Ventajas y desventajas
- +Apoya el principio de luchar por diseños acoplados loosley entre objetos que interactúan. +Le permite enviar datos a muchos otros objetos de una manera muy eficiente. +No es necesario modificar el tema para agregar nuevos observadores. -Observable integrado en clase de Java fuerza el uso de la herencia frente a la programación a una interfaz. -Si no se usa con cuidado, el patrón de observación puede agregar una complejidad innecesaria.
- Objetivo
State
- Objetivo
- Use un objeto internamente para representar el estado de otro objeto; delegar invocaciones de método al objeto de estado
- Ventajas y desventajas
- +Localiza el comportamiento dependiente del estado y divide dicho comportamiento en diferentes estados. +Se localizan fácilmente las responsabilidades de los estados específicos, dado que se encuentran en las clases que corresponden a cada estado. Esto brinda una mayor claridad en el desarrollo y el mantenimiento posterior. -Se incrementa el número de subclases.
- Objetivo
Strategy
- Objetivo
- Representar un comportamiento que parametriza un algoritmo de comportamiento o rendimiento
- Ventajas y desventajas
- +Aumenta cohesión del cliente. Factoriza aspectos comunes de una familia de algoritmos y utilizarlos en las clases base de la jerarquía. Sistematiza el uso de implementaciones alternativas. -Menor eficiencia. Aumenta el número de objetos creados.
- Objetivo
Template method
- Ventajas y desventajas
- +Facilita la reutilización de código, por eso es fundamental este patrón en muchos Frameworks. -Se puede producir ambigüedad si no se escribe bien. -Si el método plantilla llama demasiados métodos abstractos, se cansará pronto de utilizar AbstractClass como superclase.
- Objetivo
- Definir el esqueleto de un algoritmo o estructura de datos, difiriendo algunas decisiones a subclases
- Ventajas y desventajas
Visitor
- Ventajas y desventajas
- +Es fácil añadir nuevas operaciones a la “Estructura De Objetos”. +Se juntan las operaciones relacionadas entre sí, separándose las que nada tienen que ver. -Añadir un nuevo tipo de elemento a la estructura de objetos crea problemas, pues hay que tocar toda la estructura jerárquica de “Visitantes”, lo cual es muy costoso. -Frecuentemente se fuerza a los “Elementos” a proporcionar operaciones públicas que den acceso a su estado interno, con lo que se pone en peligro el encapsulamiento.
- Objetivo
- Representar una operación que se realizará en elementos de una estructura de objeto (por ejemplo, un árbol de análisis). Visitor le permite definir una nueva operación sin modificar la jerarquía de tipos
- Ventajas y desventajas
Información
- Descripción
- Mapa Mental sobre Behavioral Patterns, creado por ang3l hr el 16/02/2020.
- Creado por
- ang3l hr
- Visitas
- 1
- Valoración