Está en la página 1de 19

APLICACIONES

II
° Patrones De Diseño °
 Esteban Omar Mora Delgado

 Jessica Trapaga Vilchis

 Alma Leticia Rufino Díaz

 Salvador Rojas Sánchez


Profesor: Carlos
4-A
Agosto – Enero 2011
INDICE

Patr
one Ad Str Br
s De ap ate id
Dis gy
eño ter ge
Patrón de diseño
Los patrones de diseño son la base para
la búsqueda de soluciones a problemas
comunes en el desarrollo de software y
otros ámbitos referentes al diseño de
interacción o interfaces.
Que Es Un Patrón De
Diseño??
Es una solución a un problema de diseño.
Para que una solución sea considerada un
patrón debe poseer ciertas características.
Una de ellas es que debe haber comprobado
su efectividad resolviendo problemas
similares en ocasiones anteriores. Otra es que
debe ser reusable, lo que significa que es
aplicable a diferentes problemas de diseño en
distintas circunstancias.
PATRONES DE DISEÑO
Adapter

El patrón Adapter (Adaptador) se utiliza para


transformar una interfaz en otra, de tal modo que una
clase que no pudiera utilizar la primera, haga uso de ella
a través de la segunda.
PATRONES DE DISEÑO
Adapter
Propósito:
Convierte la interfaz de una clase en otra
interfaz que el cliente espera. Adapter
permite a las clases trabajar juntas, lo que
de otra manera no podrían hacerlo debido
a sus interfaces incompatibles.
PATRONES DE DISEÑO
Adapter
Aplicabilidad:
usar el patrón Adapter cuando:
Se desea usar una clase existente, y su interfaz no se iguala
con la necesitada.
Cuando se desea crear una clase reusable que coopera con
clases no relacionadas, es decir, las clases no tienen
necesariamente interfaces compatibles.
Estructura
Una clase adaptadora usa múltiples herencias para
adoptar una interfaz a otra

Un objeto adaptador cuenta con la composición de


objetos.
Adapter
Implementación:
Crear una nueva clase que será el Adaptador, que
extienda del componente existente e implemente la
interfaz obligatoria. De este modo tenemos la
funcionalidad que queríamos y cumplimos la condición
de implementar la interfaz.

La diferencia entre los patrones Adapter y Facade, es que


el primero reutiliza una interfaz ya existente, mientras
que el segundo define una nueva con el objetivo de
simplificarla.
PATRONES DE DISEÑO
STRATEGY

Patrón de comportamiento:

Caracterizan las formas en las que


interactúan y reparten responsabilidades
las distintas clases u objetos
PATRONES DE DISEÑO
STRATEGY
Es un patrón de State que no cambia la
funcionalidad, sino su comportamiento y
propiedades de un objeto.

Se puede ver como un cambio parcial del


tipo de objeto

Encapsula algoritmos relacionados en


clases y hacerlos intercambiables.
Permite que la selección del algoritmo se
haga según el objeto que se trate.
STRATEGY

VENTAJAS:

 Se permite cambiar el algoritmo


dinámicamente

 Se eliminan sentencias
condicionales para
seleccionar el algoritmo deseado
STRATEGY

Artículo Strategy
oferta(int) oferta(int)

EnSubasta Subastado
ofertas() precio()
nuevaoferta(int) comprador()
plazo()
PATRONES DE DISEÑO
BRIDGE

El patrón Bridge, también conocido como


Handle / Body, es una técnica usada en
programación para desacoplar una abstracción
de su implementación, de manera que ambas
puedan ser modificadas independientemente
sin necesidad de alterar por ello la otra.
BRIDGE
Aplicación:

Tanto la abstracción como su


implementación deben ser extensibles por
subclases. El patrón de diseño bridge deja
combinar la implementación y su
abstracción y permite extenderlas
independientemente.
La herencia puede generar una explosión
de clases cuando queremos dividir un
objetos; bridge evita dicha explosión.
BRIDGE
Estructura:
BRIDGE

Comportamiento:

Abstraction: define una interface abstracta.


Mantiene una referencia a un objeto de tipo
Implementor.

RefinedAbstraction: extiende la interface


definida por Abstraction

ConcreteImplementor: implementa la
interface de Implementor y define su
implementación concreta.
BRIDGE

Implementor:

define la interface para la


implementación de clases. Esta
interface no se tiene que corresponder
exactamente con la interface de
Abstraction.
sigleton
ClaseUnica
Cambio el constructor a privado. -instancia : ClaseUnica
Hago que la clase no pueda ser -ClaseUnica()
heredada. +ObtenerInstancia() : ClaseUnica
Agrego una variable estática del +Operacion1()
mismo tipo de la clase donde esta
contenida. (instancia)
Agrego un método estático que if (instancia==null)
if (instancia==null)
instancia = new ClaseUnica();
retorne la variable estática. return instancia;
{
Mutex mutex = new Mutex();
(GetInstance) mutex.WaitOne();
if(instancia==null)
No creo el objeto hasta que sea instancia = new ClaseUnica();
necesario (Lazy Creation) mutex.Close();
}
Agrego el código necesario para no return instancia;
crear dos instancias en distintos
thread.

También podría gustarte