Clase 19 programación en base a patrones

12
Programación en Base a Patrones

Transcript of Clase 19 programación en base a patrones

Page 1: Clase 19 programación en base a patrones

Programación en Base a Patrones

Page 2: Clase 19 programación en base a patrones

Business Delegate

Utilizamos un Business Delegate para reducir el acoplamiento entre los clientes de la capa de presentación y los servicios de negocio. El Business Delegate oculta los detalles de la implementación del servicio de negocio, como los detalles de búsqueda y acceso de la arquitectura EJB.

Page 3: Clase 19 programación en base a patrones

El Business Delegate actúa como una abstracción de negocio del lado del cliente; proporciona una abstracción para, y por lo tanto oculta, la implementación de los servicios del negocio. Utilizando Business Delegate se reduce el acoplamiento entre los clientes de la capa de presentación y los servicios de negocio del sistema. Dependiendo de la estrategia de implementación, Business Delegate podría aislar a los clientes de la posible volatilidad en la implementación del API de los servicios de negocio. Potencialmente, esto reduce el número de cambios que se deben hacer en el código de cliente de la capa de presentación cuando cambie el API del servicio de negocio o su implementación subyacente.

Business Delegate

Page 4: Clase 19 programación en base a patrones

Business Delegate

Page 5: Clase 19 programación en base a patrones

Business Delegate

Page 6: Clase 19 programación en base a patrones

Service Locator Disponer de un mecanismo genérico que permita obtener y

cachear referencias a interfaces Home Motivación

En MiniBank, cada vez que AccountFacadeEJB tiene que obtener referencias a interfaces Home locales sería preciso escribir código del estilo :InitialContext initialContext = new InitialContext();

AccountLocalHome accountLocalHome = (AccountLocalHome)

initialContext.lookup(“java:comp/env/ejb/AccountLocalHome”);

Page 7: Clase 19 programación en base a patrones

Service Locator Obtener una referencia a un interfaz Home tiene cierto

coste computacional asociado, especialmente cuando el servicio de nombres está en otra máquina (ej.: la obtención de referencias a AccountFacadeHome que causan los EJBAccountFacadeDelegate)

Cuando la capa cliente es una aplicación standalone o un servidor de aplicaciones web en el que no se puede hacer uso de ejb-ref en web.xml, el contexto inicial ha de crearse con el constructor InitialContext(Properties)

Las propiedades dependen del servidor de nombres usado.

Page 8: Clase 19 programación en base a patrones

Service Locator

Page 9: Clase 19 programación en base a patrones

Service Locator

Page 10: Clase 19 programación en base a patrones

Transfer Object Problema

Se desean transferir múltiples elementos de datos a través de capas.

Características Se desean accesar datos a través de capas para recuperar o

almacenar información. Reducir el número de operaciones/peticiones a través de la

red Reducir el tráfico de red

 Solución Usar un Transfer Object para llevar múltiples elementos a

través de una capa.

Page 11: Clase 19 programación en base a patrones

Singleton (GOF) El patrón de diseño singleton (instancia única) está diseñado

para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.

Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.

El patrón singleton se implementa creando en nuestra clase un método que crea una instancia del objeto sólo si todavía no existe alguna. Para asegurar que la clase no puede ser instanciada nuevamente se regula el alcance del constructor (con atributos como protegido o privado).

Page 12: Clase 19 programación en base a patrones

Singleton (GOF) Las situaciones más habituales de aplicación de este patrón

son aquellas en las que dicha clase controla el acceso a un recurso físico único (como puede ser el ratón o un archivo abierto en modo exclusivo) o cuando cierto tipo de datos debe estar disponible para todos los demás objetos de la aplicación.

El patrón singleton provee una única instancia global gracias a que: La propia clase es responsable de crear la única instancia. Permite el acceso global a dicha instancia mediante un método de clase. Declara el constructor de clase como privado para que no sea

instanciable directamente.