Download - Clase 19 programación en base a patrones
![Page 1: Clase 19 programación en base a patrones](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/1.jpg)
Programación en Base a Patrones
![Page 2: Clase 19 programación en base a patrones](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/2.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/3.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/4.jpg)
Business Delegate
![Page 5: Clase 19 programación en base a patrones](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/5.jpg)
Business Delegate
![Page 6: Clase 19 programación en base a patrones](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/6.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/7.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/8.jpg)
Service Locator
![Page 9: Clase 19 programación en base a patrones](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/9.jpg)
Service Locator
![Page 10: Clase 19 programación en base a patrones](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/10.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/11.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022071813/55a2692f1a28ab89308b45e1/html5/thumbnails/12.jpg)
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.