background preloader

Patrones de diseño

Facebook Twitter

Especificación de los Antipatrones de diseño de Desarrollo. Antipatrón de diseño. Un antipatrón de diseño es un patrón de diseño que invariablemente conduce a una mala solución para un problema.

Antipatrón de diseño

A tutorial on how to create the entity class and session facade for Java web application. What do we have in this session 4?

A tutorial on how to create the entity class and session facade for Java web application

In this section you will create an entity class and a session facade for the entity class. An entity class is a plain old Java object (POJO), a simple Java class that is identified as an entity by the @Entity annotation. Core J2EE Patterns. The Composite View Pattern. All websites have something in common: they are made of pages that share similar structures.

The Composite View Pattern

The pages share the same layout, while each page is made of different independent pieces, but always placed in the same position across all the site. The Composite View pattern formalizes this typical use, by allowing to create pages that have a similar structure, in which each section of the page vary in different situations. How the pattern works To understand this pattern, let's take an example. In the following picture you can see a typical structure of a web page.

This structure is called "Classic Layout". It can happen that, for example clicking on a link, it is needed to change only a part of the page, typically the body. As you can see, the pages are different, but their difference is only in the body part. Using the composite view pattern, the other part of the page have been reused, and the layout consistence has been preserved.

Catálogo de Patrones de Diseño J2EE. I.- Capa de Presentación. Contexto Las páginas Web sofisticadas presentan contenido de varias fuentes de datos, utilizando varias subvistas que completan una sóla página.

Catálogo de Patrones de Diseño J2EE. I.- Capa de Presentación

Además, varios individuos con diferentes habilidades contribuyen al desarrollo y mantenimiento de esas páginas Web. Problema En lugar de proporcionar un mecanismo para combinar modularmente, en el que porciones atómicas de una vista componen un página completa, las páginas se construyen embebiendo código de formateo directamente dentro de cada vista. La modificación de la distribución de múltiples vistas es difícil y propensa a errores, debido a la duplicación de código. Causas Las porciones atómicas del contenido de la vista cambian con frecuencia.Varias vistas compuestas utilizan subvistas similares, como un tabla de inventario de clientes. Solución Utilizar vistas compuestas que se componen de varias subvistas atómicas. La siguiente figura muestra una captura de pantalla de la página inicial de Sun, java.sun.com.

Estructura Composite View. Utilización del Patrón de Diseño Fachada de Sesión ("Session Façade") (Anterior) Patrones de Diseño Cuando un Cliente(JSP/Servlet/Applet) llama a los métodos definidos en distintos EJB's ocurre lo siguiente: Lo anterior tiene como consecuencia que cada EJB (métodos) llamado del Cliente requiere transferencia al nivel de Red lo cual puede causar una demora adicional entre la comunicación del Cliente (JSP/Servlet) y el "EJB"; al utilizar el Patrón de Diseño de Fachada ocurre lo siguiente: Al utilizarse este Patrón de Diseño no sólo se reducen el número de llamadas realizadas por el Cliente al "Application Server/EJB Container", sino que además se esta aislando al Cliente de futuros cambios que puedan realizarse en los distintos EJB's, esto es, para el Cliente (JSP/Servlet) solo existe un solo EJB, esto permite que sean modificados otros EJB's sin afectar/modificar el código del Cliente(JSP/Servlet), cumpliendo también con el concepto de "Fachada" ("Façade").

Utilización del Patrón de Diseño Fachada de Sesión ("Session Façade")

Patron fachada... UML Relaciones, Composicion, Agregacion, Asociacion, Dependencia, Generalizacion, Realizacion. Trabajando con los miembros de mi team de desarrollo me di cuenta que a los programadores le costaba interpretar los Diagramas de Clases que el analista realizaba.

UML Relaciones, Composicion, Agregacion, Asociacion, Dependencia, Generalizacion, Realizacion

O existían interpretaciones ambiguas de lo que el realizaba, perdiendo asi la principal funcionalidad del lenguaje UML. Especialmente en cuanto a las relaciones que existían entre las clases. Por eso me dispuse a realizar este pequeño documento, donde voy a tratar de explicar que significa cada relación, en mis palabras, y como se traduce esto a código. Asociación: Es generalmente, una relación estructural entre clases, es decir, que en el ejemplo, existe un atributo de la clase medio de transportes, que es del tipo Conductor.

Agregación: Composición Al igual que en la agregación, es una relación estructural pero se le suma, que tiene un método de destrucción de los objetos. Patrones de diseño: Mediator. En el mundo de la programación orientada a objetos una de las máximas que debemos cumplir, si queremos desarrollar un código de calidad, es que debemos buscar una elevada cohesión con bajo acoplamiento.

Patrones de diseño: Mediator

Y con el fin de ayudarnos en esta ardua tarea, aparece el patrón Mediator. La cohesión es una de las características más importantes de la OOP (Object Oriented Programming). Se refiere a que hay que dotar a las clases de un solo ámbito de desarrollo, y que a su vez, todo lo referente a ese ámbito, quede encapsulado dentro de una sola clase. Si hemos conseguido esto, diremos que tenemos una alta cohesión. Apuntes Lenguaje Java - Clases Abstractas. Indice Siguiente Anterior Concepto Hay ocasiones, cuando se desarrolla una jerarquía de clases en que algún comportamiento está presente en todas ellas pero se materializa de forma distinta para cada una.

Apuntes Lenguaje Java - Clases Abstractas

Por ejemplo, pensemos en una estructura de clases para manipular figuras geométricas. Podríamos pensar en tener una clase genérica, que podría llamarse FiguraGeometrica y una serie de clases que extienden a la anterior que podrían ser Circulo, Poligono, etc. Podría haber un método dibujar dado que sobre todas las figuras puede llevarse a cabo esta acción, pero las operaciones concretas para llevarla a cabo dependen del tipo de figura en concreto (de su clase). Para resolver esta problemática Java proporciona las clases y métodos abstractos. Declaración e implementación de métodos abstractos Siguiendo con el ejemplo del apartado anterior, se puede escribir: