Está en la página 1de 21

ADSI

•CAHUATA LAVILLA, YOLMY MILAGROS - (191870)


•CHOQUELUQUE GARCIA, ALEJANDRO MIGUEL - (193000)
•CUSI QUISPE, YANET - (192419)
•GIFONE VILLASANTE EDUARDO JUAREIS - (193001)
ADSI

“Fachada”, este patrón nos permite


acceder a un subsistema de forma más
sencilla. proporcionando una interfaz de
•Choqueluque Garcia, Alejandro Miguel alto nivel.

Se encarga de facilitar la comunicación con


todos los subsistemas necesarios.

Ocultar la complejidad de interactuar con un


conjunto de subsistemas.

Provee una interfaz unificada para un conjunto


de interfaces de un subsistema
01 08
ADSI

COMPLICATED CLASS
Conjunto de clases a utilizar mediante el
punto de acceso central sencillo
mediante la fachada.

FANCADE
Clase que ofrece funcionalidad que
demanda el cliente
mediante una interfaz sencilla.

CLIENT
Sistema que quiere hacer uso de la
clase compleja o conjunto de
02 subsistemas mediante la fachada.
ADSI

Minimiza la complejidad de los subsistemas con tareas

DESVENTAJAS
redundantes.
VENTAJAS

Promueve el principio de acoplamiento suelto.


El software se vuelve más flexible y fácilmente expandible.
Reduce el acoplamiento entre el subsistema y los clientes.

Aplicación compleja (especialmente en un código


existente).
La aproximación está acompañada por un nivel adicional
de indirección.
Alto grado de dependencia en la interfaz de la fachada.

03
ADSI

CASOS DE USO

Nuestro sistema cliente tiene que El sistema compilador de smalltalk


acceder a parte de la funcionalidad utiliza facade para agrupar clases
de un sistema complejo. como escáner, flujos de datos y
Hay tareas o configuraciones muy analizador de sintaxis.
frecuentes y es conveniente También es utilizado para agrupar
simplificar el código de uso. frameworks.
Necesitamos hacer que una librería En java las clases graphics y Font
sea más legible. utilizan facade.
Nuestros sistemas clientes tienen que
acceder a varias APIs y queremos
simplificar dicho acceso. USOS CONOCIDOS
04
ADSI

El patrón Composite consiste en


representar objetos simples y sus
containers en una clase abstracta
•Cahuata Lavilla, Yolmy Milagros de manera que puedan ser
tratados uniformemente.
Este tipo de estructura se conoce
como jerarquía parte-todo en la
que un objeto es siempre, o una
parte de un todo, o un todo
compuesto por varias partes

05
ADSI

EXTRUCTURA
El Cliente: Funciona con todos los
elementos a través de la interfaz
componente

La interfaz Componente: Describe


operaciones a elementos simples y
complejos del árbol.

La Hoja: Es un elemento básico de un


árbol que no tiene subelementos.

El Contenedor (Composite): Elemento que tiene


subelementos: hojas u otros contenedores.
06
ADSI

Facilita la representación de estructuras altamente anidadas


Código simple y conciso
Gran extensibilidad.

DESVENTAJAS
Puedes trabajar con estructuras de árbol complejas con mayor
VENTAJAS

comodidad: utiliza el polimorfismo y la recursión.


Principio de abierto/cerrado. Puedes introducir nuevos tipos de elemento
en la aplicación sin descomponer el código existente, que ahora funciona
con el árbol de objetos..

Implementación de interfaz de componentes complicada


Ajustes posteriores de las propiedades Composite complicados
Puede resultar difícil proporcionar una interfaz común para clases
cuya funcionalidad difiere demasiado.
Podría hacer el diseño demasiado general, dificultando la imposición
de restricciones sobre ciertos componentes de la jerarquía
07
08
ADSI

Se utiliza cuando queremos


01 implementar una estructura de
objetos con forma de árbol.

Cuando quieras construir una


02 estructura de objetos recursivos
anidados.

Cuando quieras que el código


03 cliente trate elementos simples y
complejos de la misma forma.

Cuando quieres representar


04
jerarquías de objetos todo-parte
09
ADSI

El patrón de diseño Decorador es una


•Gifone Villasante Eduardo Juareis estrategia de diseño revelada en 1994
para expandir la funcionalidad de las
clases dinámicamente en el software de
computación orientado a objetos. Según
este patrón, cualquier objeto puede
complementarse con un comportamiento
deseado sin influir en las funcionalidades
de otros objetos de la misma clase.

08
10
ADSI

Al igual que otros patrones GoF, como, por ejemplo, el patrón


Strategy o el Builder, el patrón Decorator tiene como objetivo
hacer que los componentes del software orientado a objetos sean
más flexibles y fáciles de reutilizar. Con este fin, el enfoque permite
a los desarrolladores añadir y eliminar las dependencias de un
objeto de manera dinámica y, cuando sea necesario, durante el
tiempo de ejecución. Esto convierte al nombrado patrón en una
buena alternativa al uso de subclases, las cuales pueden
complementar a una clase, pero no permiten hacer ajustes
durante el tiempo de ejecución.

06
11
ADSI

1. El Componente declara la interfaz común tanto para wrappers como


para objetos envueltos.
2. Componente Concreto es una clase de objetos envueltos. Define el
comportamiento básico, que los decoradores pueden alterar.
3. La clase Decoradora Base tiene un campo para referenciar un objeto
envuelto. El tipo del campo debe declararse como la interfaz del
componente para que pueda contener tanto los componentes concretos
como los decoradores. La clase decoradora base delega todas las
operaciones al objeto envuelto.
4. Los Decoradores Concretos definen funcionalidades adicionales que se
pueden añadir dinámicamente a los componentes. Los decoradores
concretos sobrescriben métodos de la clase decoradora base y ejecutan
su comportamiento, ya sea antes o después de invocar al método padre.
5. El Cliente puede envolver componentes en varias capas de decoradores,
siempre y cuando trabajen con todos los objetos a través de la interfaz
del componente.
12
✔Puedes extender el comportamiento de un objeto sin crear una nueva ADSI
subclase.
✔Puedes añadir o eliminar responsabilidades de un objeto durante el tiempo
de ejecución.
✔Puedes combinar varios comportamientos envolviendo un objeto con varios
decoradores.
✔Principio de responsabilidad única. Puedes dividir una clase monolítica que
implementa muchas variantes posibles de comportamiento, en varias clases
más pequeñas.

❌Resulta difícil eliminar un wrapper específico de la pila de wrappers.

❌Es difícil implementar un decorador de tal forma que su comportamiento no


dependa del orden en la pila de decoradores.

❌El código de configuración inicial de las capas pueden tener un aspecto


desagradable.

07
ADSI

❗ Utiliza el patrón cuando resulte ❗ Utiliza el patrón Decorator cuando


extraño o no sea posible extender necesites asignar funcionalidades
el comportamiento de un objeto adicionales a objetos durante el
utilizando la herencia. tiempo de ejecución sin descomponer
el código que utiliza esos objetos.
Muchos lenguajes de
programación cuentan con la El patrón Decorator te permite
palabra clave final que puede estructurar tu lógica de negocio en
utilizarse para evitar que una capas, crear un decorador para
clase siga extendiéndose. Para cada capa y componer objetos con
una clase final, la única forma de varias combinaciones de esta lógica,
reutilizar el comportamiento durante el tiempo de ejecución. El
existente será envolver la clase código cliente puede tratar a todos
con tu propio wrapper, utilizando estos objetos de la misma forma, ya
el patrón Decorator. que todos siguen una interfaz común.
14
ADSI

•Cusi Quispe, Yanet

Se utiliza para crear objetos que


pueden representar funciones
de otras clases u objetos y la
interfaz se utiliza para acceder a
estas funcionalidades

15
CONTROL DE ACCESO: FILTRADO DE CONTENIDO:
Es posible que los
administradores del servidor Al estar en el medio del camino,
proxy permite que ciertos el servidor también permite, o
usuarios tengan o no acceso a no, el acceso a ciertos sitios.
Internet a través de Entre las reglas que se pueden
restricciones en su propio inicio aplicar están aquellas para
de sesión o direcciones IP, bloquear sitios web específicos,
proporcionando al entorno una pudiendo llegar a bloquear
capa adicional de protección. categorías completas.

16
PROXY REMOTO PROXY PROTECCIÓN:
Simula un representante Permite controlar el acceso a
local de un objeto un objeto dependiendo de
externo. ciertos permisos.

PROXY
PROXY VIRTUAL:
INTELIGENTE:
Se usan pedir objetos que
Realiza operaciones
son costosos (desde el
adicionales antes de acceder
punto de vista de la
al objeto.
17 memoria).
IObject
La interface común
entre el Objet y el Proxy
Object
El objeto al que el
cliente quiere ejecutar.
PROXY
Clase que implementa
IObject y delega la
responsabilidad al
Object
ADSI

Una de las principales es la seguridad que tenemos de que, como el


proxy es lo único que interactúa con el objeto, el estado del mismo

DESVENTAJAS
se modifica a través del proxy. Gestiona los objetos que consumen
VENTAJAS

muchos recursos y, al hacer ese manejo, evita que haya muchas


instancias de los mismos.

La principal es que agrega una capa de abstracción extra que a


veces puede ser un inconveniente ya que permite que haya gente
usando el objeto a través del proxy y otros de manera directa.
Ocasionando un comportamiento errante al utilizar el proxy

17
18

También podría gustarte