Patrones de diseño orientados a objetos explicados utilizando ejemplos prácticos

0 Comments

Patrones de comportamiento

Este tipo de patrón se refiere a la comunicación entre objetos. En la mayoría de los casos, las dependencias entre los objetos que se comunican se reducen a través de estos patrones, lo que conduce a un mejor diseño de software.

cadena de responsabilidad

Este patrón crea una cadena de objetos receptores para una solicitud. Evita el acoplamiento del remitente de una solicitud al receptor y da a varios objetos la oportunidad de manejar la solicitud. Los objetos de Recepción están vinculados entre sí., En el siguiente ejemplo se construye una cadena de unidades de middleware. La solicitud, que contiene correo electrónico y contraseña, se reenvía en la cadena. Se pueden agregar fácilmente nuevos elementos en la cadena.

el Comando

En el comando patrón de un objeto se utiliza para encapsular toda la información necesaria para realizar una acción o desencadenar un evento en un momento posterior. Como se muestra a continuación, ActionOpen define la acción, así como el objeto en el que se ejecuta la acción., No se necesita más información y otro objeto, aquí menú, puede ejecutar la acción.

Intérprete

El Intérprete patrón define una representación de la gramática de una lengua y proporciona la capacidad de interpretar las frases de ese idioma. En el fragmento de código debajo de un objeto Plus puede interpretar «operand1 + operand2» y sabe qué hacer con esa expresión. Se pueden agregar más intérpretes sin cambiar demasiado la estructura. El analizador entonces usa intérpretes para entender la entrada.,

Iterator

El Iterador se utiliza para atravesar un contenedor de datos para acceder al contenedor de los elementos sin necesidad de conocer la estructura subyacente. Además, se pueden agregar nuevas variantes transversales sin cambiar la interfaz de los objetos o la estructura de datos en sí.
El ChannelSurfer, representado a continuación, puede acceder a los canales de manera consecutiva. El objeto RemoteControl no necesita preocuparse por la organización de los canales. Un RandomChannelSurfer, por ejemplo, se puede agregar sin muchos problemas.,

Mediador

Si dos o más objetos de la necesidad de cooperar, el modelo de Mediador podría ser aplicado. Especialmente si los objetos no se conocen entre sí, si no deben estar estrechamente acoplados o si su interacción es compleja, este patrón puede ayudar.
en el ejemplo a continuación hay cierta interacción necesaria entre los elementos de la interfaz de usuario. Esta interacción está sucediendo a través del diálogo de autenticación como mediador. De esta manera, la interacción no se define en uno de los objetos participantes, sino que se extrae en el mediador.,

Memento

El Recuerdo patrón es útil si un determinado estado de un objeto debe ser guardado para su posterior uso. Por lo tanto, no viola la encapsulación de los detalles de implementación de ese objeto. Por ejemplo, se puede utilizar para la implementación de un mecanismo de deshacer.

Observador

En el observador patrón observador objetos suscribirse a un objeto observado para ser notificado cada vez que los cambios observables de sus datos., Los observadores se acoplan libremente y se pueden agregar y eliminar en tiempo de ejecución.con respecto a cómo el observador finalmente obtiene los datos del observable, hay dos variantes: push y pull. El siguiente código muestra la variante pull, que es más flexible, ya que en este caso el observable no necesita saber cómo desea recibir los datos, pero el observador puede obtener los datos como desee.

Estado

El Estado patrón permite que un objeto de modificar su comportamiento cuando su estado interno de los cambios., Este patrón es similar al patrón de estrategia, pero en este caso se decide internamente cómo se comportan los objetos. Esto es especialmente útil si las condiciones complejas definen cómo debe comportarse el objeto. Se pueden agregar nuevos Estados independientemente de los Estados existentes.

Estrategia

En el contexto de la Estrategia de patrón existen múltiples variantes de un algoritmo donde una variante es el elegido para ser ejecutado en tiempo de ejecución.,
en el siguiente ejemplo, un objeto Compressor se puede utilizar con uno de los dos algoritmos diferentes definidos en tiempo de ejecución. El método que ejecuta la acción (createArchive) aplica el algoritmo elegido.

Template

El patrón de plantilla define una estructura para subclases en la que se definen los pasos de un algoritmo y su orden. Esto asegura que las subclases sigan exactamente los mismos pasos, proporcionando una mejor visión general y consistencia., También permite definir implementaciones predeterminadas para pasos que pueden ser anulados por subclases.
Como se muestra a continuación, todos los analizadores heredados de DataParser siguen exactamente los mismos pasos cuando se ejecuta parse (). Esto asegura, por ejemplo, que todos los analizadores cierren los archivos y registren el estado.

Visitor

El Patrón de visitante permite aplicar una o más operaciones a un conjunto de objetos en tiempo de ejecución sin tener las operaciones estrechamente acopladas con la estructura del objeto.,
esto le permite implementar double dispatch donde una llamada de función a diferentes funciones concretas depende del tipo de tiempo de ejecución de dos objetos. En el siguiente ejemplo, por un lado, hay elementos de ruta y, por otro lado, objetos de visitante que ejecutan diferentes funciones en los elementos de ruta. Si hay más visitantes agregados en el futuro, el elemento ruta no necesita cambiar.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *