Antipatrones

Ya hemos analizado múltiples patrones en post anteriores. Hemos revisado las buenas prácticas y principios de desarrollo orientado a objetos. Sin embargo, también existe un lado oscuro del diseño de software, ciertas prácticas a las que llamamos antipatrones. Los patrones de diseño se definen como, soluciones generales a problemas recurrentes en un contexto particular. ¿Cómo…

Patrón Modelo-Vista-Controlador

El patrón modelo-vista-controlador es uno de los patrones más utilizados hoy en día. En realidad este patrón, es un conjunto de 3 patrones. Cuando hay dos o más patrones juntos se les llama patrones compuestos. Este es el caso del patrón modelo-vista-controlador (MVC), ya que, se compone de 3 patrones principalmente: Estrategia. Compuesto. Observador. Algunas…

Patrón Proxy Protegido

Es el momento de revisar el siguiente tipo de Proxy, el cual llamamos Patrón Proxy Protegido, ya que, por medio de un Proxy, podemos determinar si un cliente puede o no realizar una acción sobre un objeto. Para este patrón podemos hacer uso de clases utilitarias dentro de JAVA, en específico las del paquete java.lang.reflect.…

Patrón Proxy Virtual

En el post anterior discutimos cómo implementar un Proxy Remoto utilizando JAVA RMI para acceder a los objetos que están en otra maquina virtual. El patrón Proxy también puede implementarse de manera virtual (Patrón Proxy Virtual), es decir, dentro de la misma aplicación, vamos a utilizar un objeto que va a sustituir al elemento que…

Patrón Proxy Remoto

El patrón Proxy en específico, tiene múltiples usos y por ende puede ser implementado de varias maneras. Una de ellas es poder acceder a recursos remotos. En otras palabras, poder acceder a objetos que no existen dentro de la misma máquina virtual (JVM). Esto se conoce como patrón proxy remoto. Las variaciones del patrón Proxy…

Patrón Estado

¿Alguna vez ha usado varios IF o SWITCH dentro de su aplicación para determinar que acción tomar? Por ejemplo, si el estado de la factura es nuevo, entonces, ejecute el método ABC, si es modificado entonces, ejecute DEF. ¿Qué pasa si necesitamos definir más acciones para un nuevo estado? ¿Cuantos IF tendría que modificar o…

Patrón Compuesto

Para el patrón compuesto vamos a utilizar el ejemplo del post anterior. Repasemos el caso de uso rápidamente. Nuestra aplicación se encarga de almacenar diferentes tipos de documentos. Por medio del Patrón Iterador, logramos simplificar la forma en que nuestro servicio recorre los diferentes tipos de archivos. Además, encapsulamos la forma en que nuestros clientes…

Patrón Iterador Java

En el post anterior, implementamos nuestra propia versión de la interfaz Iterador. Esta vez, vamos a utilizar la interfaz que nos brinda Java por defecto: java.util.Iterator para demostrar el patrón iterador Java. Al utilizar esta interfaz, en lugar de la creada por nosotros, podemos simplificar nuestro ejemplo anterior un poco, ya que, muchas de las…

Patrón Iterador

Al igual que el patrón Observador, el patrón iterador tiene dos versiones. Una implementación desde cero o la facilidad de utilizar la interfaz que nos proporciona Java por defecto. Empecemos con la versión creada por nosotros desde cero. Cuando decimos Iterador, nos estamos refiriendo a recorrer una lista de elementos. En otras palabras poder acceder…

Patrón Método Plantilla

Recuerdo una vez en la universidad, cuando cursaba Programación I, que el profesor me preguntó lo siguiente: ¿Hacer un avión de papel es un algoritmo? En ese momento dudé bastante, y no estaba seguro de mi respuesta. Ahora con más experiencia puedo decirles que respondí bien en aquel momento. La respuesta es sí. Hacer un…