Patrón de diseño – Composite

El patrón de diseño Composite nos sirve para construir estructuras complejas partiendo de otras estructuras mucho más simples, dicho de otra manera, podemos crear estructuras compuestas las cuales están conformadas por otras estructuras más pequeñas.

Para comprender mejor como funciona este patrón imaginemos una casa de ladrillos, las casas como tal no están hecha de una pieza, si observamos las paredes estas esta echas de pequeñas piezas llamadas ladrillos, entonces, el conjunto de estos ladrillos crea paredes, y un conjunto de paredes crean una casa. este ejemplo puede ser aplicado al patrón Composite, y no digo que vallamos a crear una casa con este patrón, sino más bien nos da una idea de cómo trabaja para poder utilizarlo con otros ejemplos.

Patrón de diseño Composite
Fig. 1: Estructura del patrón de diseño Composite.

(más…)

2Phase Commit

Hoy en día casi todas las aplicaciones utilizan bases de datos para almacenar y transaccionar la información, sin embargo casi todas las aplicaciones tiene como origen de datos una sola base de datos centralizada, en donde guardan toda la información, actualizan o borran, para lo cual una sola transacción garantiza que todos los cambios que realicemos se apliquen de forma atómica. (más…)

Pila (Stack)

Pila StackEn días pasados hablamos acerca de las Colas o Queue las cuales siguen la filosofía FIFO (First In – First Out) o Primero en entrar – Primero en salir. Sin embargo, hoy hablaremos de las Pilas o Stack las cuales son un poco diferentes de las Colas, ya que éstas siguen la filosofía LIFO (Last In – First Out) o Último en entrar primero en salir. (más…)

Estructura de datos – Queue (Cola)

Pila StackEn esta entrada quiero platicarles de las Colas (Queue) un tipo de estructura de datos muy utilizada. ¿Pero que es exactamente una colas?, Cuando digo la palabra cola lo mas seguro es que lo primero que se les venga a la mente es una Cola o Fila como cuando vamos al cine y la taquilla esta muy llena o cuando vamos a un evento donde se presentara alguien famoso. Si en tu mente paso un escenario a sí te diré que vas por buen camino.

Una Cola o Queue es una estructura de datos que sigue la Filosofía FIFO del ingles First In – First Out que en español seria “Primero en entrar primero en salir”. Esto quiere decir que el elemento que entre primero a la Cola sera el primero que salga y el último que entre sera el último en salir.

Un escenario común es cuando vamos al banco, Llegamos y lo primero que haces es tomar un turno, inmediatamente nos damos cuenta que ya había 10 personas primero que tú por lo que automáticamente deduces que ellos serán atendidos primero que tú. Si nos damos cuenta en este escenario el primer cliente que llego y solicito un turno sera el que sea atendido primero y tú que llegaste al último seras atendido hasta el final.

 

Agregar elementos a una cola

Estructura de datos - Cola (Queue)
Fig.1: Muestra como un elemento es agregado a la cola(Izquierda) y como queda la cola luego de que el nuevo elemento entra en la cola(Derecha).

Si apreciamos en la figura anterior cuando un nuevo elemento entra en la cola se posiciona siempre al final de la cola a si mismo este sera el ultimo en salir.

(más…)

Patrón de diseño – Proxy

UMLEn esta entrada les hablare del patrón de diseño Proxy, el cual es uno de mis favoritos ya que nos permite hacer una gran cantidad de cosas sin que el usuario final se de cuenta de lo que esta pasando. Podríamos definir a un Proxy como una clase o componentes que hace el papel de intermediario entre la clase que queremos utilizar el cliente que la esta utilizando. Cuando digo intermediario me refiero a que el Proxy nos permite hacer una o varias operaciones antes y después de realizar la tarea que realmente quiere el cliente, incluso el proxy puede tomar la decisión de nunca realizar la tarea solicitada por el usuario.

Patrón de diseño Proxy
Fig.1: Diagrama que muestra como esta conformado un Proxy, Un Proxy se crea a través de una interfaz la cual imita el comportamiento de esta, Sin embargo el trabajo realmente lo delega a otra clase que generalmente también implementan la interfaz del Proxy.

(más…)

Java Message Service (JMS)

QueueEn este Post se habla hacer de la especificación de JMS, los patronos de entrega de manejes que soporta como lo son Punto a Punto(P2P) y Publicador/Suscriptor. También hablare sobre los Temas y Colas (Topis and Queues) y los diferentes tipos de suscriptores que soporta la implementación de JMS.

Java Message Service es una especificación de la Java Community Process(JRS 914) la cual fue desarrollada originalmente para permitir a las aplicaciones Java comunicarse con los proveedores MOM o Middleware Orientado a Mensajes la cual buscaba los siguientes objetivos: (más…)

Estructuras de datos – Listas ligadas

ListaLigadaAgregarSin duda una de las partes mas emocionantes cuando programamos es la parte de la algoritmia donde tenemos que usar la mente para resolver problemas que se escuchan fácil pero a la hora de programarlas es otra cosa.

En esta ocasión hablare un poco de las Listas ligadas y de las variantes que existen entre ellas.

Podríamos definir a una lista ligada como un colección de elementos que están enlazados entre si y que cada nodo contiene un valor y las hacia otros nodos. (más…)