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…
All posts in Diseño
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…
Patrón Observador Java
En el post anterior revisamos todos los detalles del patrón Observador utilizando nuestras propias interfaces. Esta vez, vamos a utilizar las clases e interfaces que Java ofrece por defecto dentro del JDK (Patrón Observador Java). Java nos ofrece las siguientes clases dentro del paquete java.util: Observable: Esta es una clase, no una interfaz. Esta clase…
Patrón Observador
Este post analiza el patrón observador. En nuestras aplicaciones, es muy común cambiar el estado de nuestras clases. Cuando hablamos de estado, nos referimos a sus atributos internos, como por ejemplo, el correo de una persona, la dirección, etc. En algunas ocasiones, es necesario notificar estos cambios a otras clases o componentes dentro de nuestro…
Patrón Dispose
Antes de comenzar con el patrón dispose es necesario aclarar ciertos términos, ya que, los vamos a utilizar cuando nos referimos a Dispose. Estos términos son: recursos, recursos administrados, recursos no administrados y recolector de basura (garbage collector o GC) Recursos Un recurso, podría definirse como, cualquier componente, físico o virtual, que tiene una disponibilidad…
Patrón Fachada
Podríamos decir que el patrón fachada es uno de los más sencillos de implementar. Por ejemplo, si en la aplicación existe un proceso/botón/servicio que se encarga de hacer llamados a muchas y diferentes clases o servicios, fachada es el patrón a utilizar. Analicemos el siguiente ejemplo: Nuestra aplicación se encarga de procesar facturas. Una factura…
Patrón Adaptador
El patrón adaptador es muy útil cuando necesitamos incluir (adaptar) código adicional a una aplicación que ya está funcionando. Casi siempre, es algún código hecho por algún tercero que necesitamos procesar dentro de nuestra aplicación y retornar un resultado. A veces, es necesario utilizarlo para poder seguir accediendo a ciertas características que ya están siendo…
Patrón Comando
El patrón comando lo podemos utilizar cuando deseamos encapsular el llamado a ciertos métodos, es decir, cuando no deseamos exponer a los clientes la forma en que se realizan los procesos. Empecemos con un ejemplo que nos ayude a comprender un poco mejor la idea de este patrón, el ejemplo es tomado del libro Head…
Patrón Fábrica Abstracta
En esta ocasión vamos a analizar el Patrón Fábrica Abstracta. En el post anterior, logramos definir el estándar para crear instancias de Laptop en cada sucursal. Ese diseño nos garantiza flexibilidad y la posibilidad de agregar nuevas sucursales para crear las diferentes marcas (implementaciones) de Laptop. Sin embargo, el modelo anterior también nos impide controlar…