Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Patrones
4.1 Qu son?
Un patrn es una idea que ha sido til en un contexto y probablemente lo sea en otros. Es un modo de proveer informacin en forma de una declaracin de problema, algunas restricciones, una presentacin de una solucin ampliamente aceptada al problema, y luego una discusin de las consecuencias de esa solucin. Un patrn involucra una descripcin general de una solucin recurrente a un problema recurrente con diversos objetivos y restricciones. Pero un patrn identifica algo ms que simplemente una solucin, tambin explica por qu la solucin se necesita. Un patrn orientado a objetos es una abstraccin formada por algunas clases, que resulta ser til una y otra vez en desarrollos de Objetos.
16
PATRONES
17
PATRONES
Los sistemas documentados con los patrones que utiliza, son ms fciles de comprender. Los patrones son un medio ideal para documentar qu problema estn resolviendo, la forma en que lo hacen y los motivos de esa solucin. Facilitan la reestructuracin de un sistema, haya sido o no, diseado con patrones. Posibilitan un vasto reuso de arquitecturas de software
4.7 Categoras
Los patrones cubren diferentes rangos de escala de abstraccin. Algunos ayudan a estructurar un sistema en subsistemas, otros a refinar estos subsistemas y sus relaciones, otros solucionan una implementacin particular.
18
PATRONES
Accountability: El concepto de Accountability se presenta cuando una persona u organizacin es responsable sobre otra. Para representar las relaciones entre dos partes se crea el tipo Accountability y el Accountability Type para expresar la clase de relacin.
Accountability Type
Organizacin
encargado
Accountability
responsable
Party Persona
Time Period
Figura 4.1
Accountability
Vista
Controlador
Modelo
Figura 4.2
PAC (Presentation-Abstraction-Control): define una estructura para software interactivo como una jerarqua de agentes cooperantes. Cada agente es responsable de un aspecto especfico de funcionalidad de la aplicacin y consiste de tres componentes: la Presentacin, la Abstraccin, y el Control. Esta subdivisin separa la interaccin hombre-mquina de la funcionalidad y de la comunicacin con otros agentes.
19
PATRONES
Abstraccin
Control
Presentacin
Figura 4.3
Broker: puede ser usado en sistemas distribuidos: con clientes que interactan por invocaciones a un servidor remoto con bajo nivel de acoplamiento. Un broker o corredor es responsable para coordinar la comunicacin entre cliente y server.
Proxy
Broker
Proxy
Cliente
Bridge
Server
Figura 4.4
20
PATRONES
Client
Leaf operation
children
Figura 4.5
Composite
Strategy: Define una familia de algoritmos, encapsula a cada uno y los hace intercambiables. Permite que el algoritmo vare independientemente de los clientes que lo usan. Una clase Strategy define el algoritmo que encapsula y una clase Context delega el requerimiento desde su cliente a su Strategy.
Context contextInterface
strategy
Strategy algorithmInterface:
...
StrategyN
algorithmInterface: algorithmInterface:
Figura 4.6
Strategy
4.8 Catlogos
Un catlogo de patrones es una coleccin de patrones relacionados que cubren dominios y disciplinas particulares con variacin de concurrencia, distribucin, diseo organizacional, reuso de software, sistemas de tiempo real, negocio y comercio electrnico, y diseo de interfaces humana. Estos catlogos presentan una coleccin de soluciones relativamente independientes a problemas de diseo comunes, agrupndolos en categoras.
21
PATRONES
Los patrones se agrupan de acuerdo a dos criterios fundamentales: 1) categora del problema o funcionalidad que los patrones soportan y 2) categora de los patrones (arquitectnicos, diseo, idiomas)
Propsito Alcance CLASE Factory Method Adapter (clase) Bridge (clase) OBJETO Abstract Factory Prototype Singleton Adapter (objeto) Bridge (objeto) Facade Flyweight Proxy Chain of Responsability Command Iterator (objeto) Mediator Memento Observer State Strategy COMPUESTOS Builder Composite Decorator Figura 4.7 Interpreter Iterator (componente) Visitor Template Method
CREACIONAL
ESTRUCTURAL
COMPORTAMIENTO
Los catlogos de patrones nos ayudan para ubicar los patrones que pueden utilizarse en nuestros proyectos. Para ello, uno busca en la intencin y motivacin que inspir a cada patrn para encontrar uno o ms que sean relevantes para nuestro problema, y de esa preseleccin, estudiarlos plenamente, y seleccionar el ms adecuado.
22
PATRONES
Los patrones actan como bloques o microarquitecturas para la construccin de diseos ms complejos. Los frameworks son macroarquitecturas que generalmente contienen varios patrones. Un framework es software ejecutable, mientras que un patrn de diseo representa conocimiento y experiencia acerca de software, slo un ejemplo de patrn puede codificarse. En lo que a esto respecta, los frameworks son de una naturaleza fsica, mientras que los patrones son de una naturaleza lgica: Los frameworks son la comprensin fsica de una o ms soluciones de patrones de software. Los patrones estn descriptos en un lenguaje independiente, mientras que los frameworks estn instrumentados generalmente en un lenguaje particular.
23