Patrones de Diseño

Anuncio
Patrones
Patrones



Es una solución reusable de problemas comunes.
Los patrones solucionan problemas que existen en
muchos niveles de abstracción.
 desde el análisis hasta el diseño y desde la
arquitectura hasta la implementación.
Es una solución a un problema de diseño no trivial
que es efectiva y reusable: a) ya ha resuelto un
problema similar anteriormente de manera
satisfactoria b) se puede aplicar a muchos
problemas de diseño en diferentes circunstancias.



Patrones de Alto nivel: Patrones de Arquitectura
Patrones de nivel medio: Patrones de Diseño
Patrones de bajo nivel: Idioms
Patrones de Arquitectura


Son formas predefinidas de resolver problemas
de aquitectura.
La arquitectura de un sistema de software casi
nunca se limita a un solo patron o estilo de se
arquitectura.
Estilos Arquitectónicos
Categorías
Estilos
Comunicación
SOA (Service Oriented Architecture)
Bus de Mensajes
Distribución
Cliente/Servidor
3-Capas
N-Capas
Estructura
Basado en Componentes
Orientado a Objetos
Arquitectura de Capas
Otras
Dirigido por eventos
Modelo-Vista-Controlador
Patrones de Comunicación: SOA




Esta arquitectura permite que la funcionalidad de la
aplicación se provea combinando un conjunto de
Servicios.
Los servicios son débilmente acoplados ya que se
basan en interfaces estándar que se pueden
invocar publicar y describir.
Se basan en un esquema de interacción con
mensajes a través de sus interfaces según el
esquema de definición.
El estilo SOA permite empaquetar los proceso de
negocios dentro de servicios interoperables, usando
un amplio rango de protocolos y de formatos de
datos para comunicar la información.
XML
HTTP
WSDL
SOAP
REST
Serialización de Objetos
Patrones de Comunicación: Bus de
Mensajes (Message Bus)




Es un estilo para diseñar aplicaciones donde la
interacción entre aplicaciones se realiza por
pase de mensajes (usualmente asincrónicos)
sobre un bus común.
Oracle Service Bus.
IBM WebSphere MQ.
Message Queue Server
Patrones de Distribución: Cliente/Servidor



Describe un sistema distribuido que consta de
un cliente, un sistema servidor, y una red de
comunicación. (2-tier)
El servidor es accedido por múltiples clientes.
Generalmente, una aplicación de IUG que se
comunica con el servidor de base de datos que
contiene la lógica de negocio en forma de
procedimientos almacenados.
Patrones de Distribución: N-Tier / 3-Tier



Es un estilo que describe la separación de la
funcionalidad de la misma manera que el estilo
de capas pero cada segmento de capa puede ser
localizado en una computadora físicamente
separada.
Las N-tier se caracterizan por la descomposición
funcional de aplicaciones, componentes de
servicios, lo que provee escalabilidad,
disponibilidad, manejabilidad, mantenibilidad y
reutilización.
Cada capa es independiente de las demás.
Cliente
Navegador
Presentación
Servidor Web
Lógica de Negocio
Middleware
Aministración de Recursos
Tecnología .Net
Tecnología J2EE
Patrones de Estructura: Basado en
Componentes



Esta arquitectura describe un enfoque basado
en la descomposición del diseño en
componentes funcionales o lógicos que
exponen interfaces de comunicación que
contienen métodos eventos y propiedades
Es un nivel de abstracción más alto que el
principio orientado a objeto.
Un componente es un paquete, un servicio web,
o un módulo.
Patrones de Estructura: Diseño Dirigido por
Dominio


Es un estilo orientado a objeto que se enfoca en
el modelado del dominio del negocio y en la
definición de las entidades el negocio dentro del
dominio.
El modelo de dominio es el núcleo del sistema.
Patrones de Estructura: Arquitectura de
Capas




Se enfoca en el agrupamiento de la
funcionalidad de la aplicación en distintas capas
ubicadas una sobre la otra.
La funcionalidad de cada capa está relacionada
a un mismo rol o responsabilidad común.
L acomunicación entre caps es explícita y
débilmente acoplada.
Las capas pueden residir en la misma
computadora física
Arquitectura Dirigida por eventos



Consiste en el diseño e implementación de
aplicaciones que transmiten eventos entre
componentes de SW débilmente acoplados y
servicios
Consiste en emisores o agentes y consumidores
de eventos, que tienen la responsabilidad de
reaccionar a los eventos.
La API Java Swing se basa en una arquitectura
dirigida por eventos (biblioteca gráfica)
Arquitectura de patrón Modelo –VistaControlador


Es un patrón de arquitectura de software que
separa los datos de una aplicación, la interfaz de
usuario, y la lógica de control en tres
componentes distintos.
Se ve frecuentemente en aplicaciones web,
donde:
 la vista es la página HTML y el código que provee de
datos dinámicos a la página.
 El modelo es el Sistema de Gestión de Base de
Datos y la Lógica de negocio.
 El controlador es el responsable de recibir los
eventos de entrada desde la vista.




Elementos del patrón:
Modelo: datos y reglas de negocio
Vista: muestra la información del modelo al
usuario
Controlador: gestiona las entradas del usuario
Patrones de Diseño

Un patrón de diseño es una descripción de
clases y objetos comunicándose entre sí,
adaptado para resolver un problema de
diseño general en un contexto particular
Elementos de un patrón



Nombre: describe el problema de diseño.
El problema: describe cuándo aplicar el patrón.
La solución: describe los elementos que
componen el diseño, sus relaciones,
responsabilidades y colaboración
Categorías basadas en su PROPÓSITO



Creacionales: Patrones creacionales tratan con
las formas de crear instancias de objetos.
Estructurales: Los patrones estructurales
describen como las clases y objetos pueden ser
combinados para formar grandes estructuras y
proporcionar nuevas funcionalidades.
Comportamiento: Los patrones de
comportamiento nos ayudan a definir la
comunicación e iteración entre los objetos de un
sistema. El propósito de este patrón es reducir
el acoplamiento entre los objetos.
Patrones creacionales





Abstract Factory
Builder
Factory Method
Prototype
Singleton
Patrones Estructurales







Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Patrones de Comportamiento











Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento.
Observer
State
Strategy
Template Method
Visitor
Creacional: Singleton
 Muchas veces, en nuestras aplicaciones necesitamos acceder fácilmente
a un objeto único, la instancia única de cierta clase: un gestor de
impresoras, un pool de conexiones a una base de datos, un gestor de
parámetros de configuración, etc.
Estructural: Composición

Se trata de un patrón estructural y su propósito
es la composición de objetos en estructuras de
árbol para representar jerarquías parte-todo. El
patrón permitirá a los clientes tratar de forma
uniforme los objetos y las composiciones
Comportamiento: State



Se utiliza cuando el comportamiento de un
objeto cambia dependiendo del estado del
mismo y existe una gran complejidad en el
código.
Se implementa una clase para cada estado
diferente del objeto y el desarrollo de cada
método según un estado determinado.
El objeto de la clase a la que le pertenecen
dichos estados resuelve los distintos
comportamientos según su estado, con
instancias de dichas clases de estado.
Patrones J2EE



De acuerdo al libro "J2EE PATTERNS Best
Practices and Design Strategies", existen 5 capas
en la arquitectura J2EE:
 Cliente
 Presentación
 Negocios
 Integración
 Recurso
http://java.ciberaula.com/articulo/diseno_patrones_j
2ee/
http://java.sun.com/blueprints/corej2eepatterns/Patt
erns/index.html
Idioms



Patrones de bajo nivel.
Solucionan problemas específicos de la
implementación en un lenguaje de
programación.
Ej: Conveciones de nombres, Formato para el
código fuente, Manejo de memoria.
Descargar