Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Uso de Patrones de Arquitectura Capitulo 4
Uso de Patrones de Arquitectura Capitulo 4
Fuente Wikipedia
Los escaladores usan a menudo patrones de diseo, usado Arneses, cuerdas, mosquetones, que usan dadas ciertas Condiciones de soporte, forma, y para situaciones que deben Resolver como : salvataje, cruzar dos personas en un solo Intento, saltarse una gran roca, etc.
"Cada patrn describe un problema que ocurre infinidad de veces en nuestro entorno , as como la solucin al mismo, de tal modo que podemos utilizar esta solucin un milln de veces ms adelante sin tener que volver a pensarla otra vez."
Vamos a un ejemplo
Alta Cohesin
PATRONES
Controlador
Creacionales
GOF Estructurales
Comportamiento
Patrones GRASP
Experto
El GRASP de experto en informacin es el principio bsico de asignacin de responsabilidades en diseo O.O. Nos indica que la responsabilidad de la creacin de un objeto debe recaer sobre la clase que conoce toda la informacin necesaria para crearlo. Ntese, que el cumplimiento de una responsabilidad requiere a menudo informacin distribuida en varias clases de objetos.
Creador
El patrn creador nos ayuda a identificar quin debe ser el responsable de la creacin (o instanciacin) de nuevos objetos o clases. El patrn Creador gua la asignacin de responsabilidades relacionadas con la creacin de objetos, tarea muy frecuente en los sistemas orientados a objetos. El propsito fundamental de este patrn es encontrar un creador que debemos conectar con el objeto producido en cualquier evento. Al escogerlo como creador, se da soporte al bajo acoplamiento.
Bajo acoplamiento
Es la idea de tener las clases lo menos ligadas entre s que se pueda. De tal forma que en caso de producirse una modificacin en alguna de ellas, se tenga la mnima repercusin posible en el resto de clases, potenciando la reutilizacin, y disminuyendo la dependencia entre las clases Los beneficios de este factor es que no se afectan por cambios de otros componentes, son fciles de entender por separado y fciles de reutilizar.
Alta Cohesin
Nos dice que la informacin que almacena una clase debe de ser coherente y est en la mayor medida de lo posible relacionada con la clase. La cohesin es una medida de cun relacionadas y enfocadas estn las responsabilidades de una clase. Una clase con alta cohesin, compartir la responsabilidad de una operacin, con otras clases Una clase con baja cohesin, concentrar las responsabilidades de una o muchas operaciones .
Qu pasa si el sistema tiene 50 operaciones, todas recibidas por la clase TPDV ? La clase se ira saturando con tareas y terminara perdiendo la cohesin
Controlador
El patrn controlador es un patrn que sirve como intermediario entre una determinada interfaz y el algoritmo que la implementa, de tal forma que es la que recibe los datos del usuario y la que los enva a las distintas clases segn el mtodo llamado. Este patrn sugiere que la lgica de negocios debe estar separada de la capa de presentacin, esto para aumentar la reutilizacin de cdigo y a la vez tener un mayor control. Un Controlador es un objeto de interfaz no destinada al usuario que se encarga de manejar un evento del sistema. Define adems el mtodo de su operacin.
Ejemplo de controlador
Por ejemplo, cuando un cajero que usa un sistema de Terminal en el punto de venta oprime el botn "Terminar Venta, est generando un evento sistmico que indica que la venta ha terminado
Ntese que la clase TPDVApplet - parte de la capa de presentacin - transmite un mensaje introducirProducto al objeto TPDV. ?No intervino en el proceso de la operacin, ni la decisin de cmo manejarla, el applet se limit a delegarla a la capa del dominio.
Patrones GOF
Creacionales
1.-Fabrica abstracta (Abstract Factory) : Proporciona un interfaz para crear las familias de objetos relacionados o dependientes sin especificar sus clases concretas. 2.-Constructor (Builder): Separa la construccin de un objeto complejo de su representacin , de modo que el mismo proceso de construccin pueda crear representaciones diferentes. 3.-Mtodo fabricacin(Factory Method) : Define un interfaz para crear un objeto, pero dejar a subclases decidir sus instancias . El Mtodo De la fbrica deja a una clase la creacin de ejemplares o copias a subclases. 4.-Prototipo(Prototype) : Crea nuevos objetos crendolos de una instancia ya existente. 5.-Instancia nica (Singleton) : Asegure que una clase slo tiene una instancia , y proporcionarle un punto global de acceso a dicha instancia
Estructurales
6.-Adaptador (adapter) :Convierte la interfaz de una clase en otra interfaz que otra clase puede usar . debido a que la interfaces es incompatibles con dicha clase 7.-Puente ( bridge) :Desacopla una abstraccin de su implementacin de modo que los dos puedan variar por separado. 8.-Peso ligero (Flyweight ) :Reduce la redundancia cuando gran cantidad de objetos poseen idntica informacin. 9.-Fachada (Facade) : Proporciona un interfaz unificada a un juego de interfaces en un subsistema. La fachada define un interfaz de nivel ms alto que hace el subsistema fcil de usar. 10.-Envoltorio (Decorator) :Adjunta responsabilidades adicionales a un objeto dinmicamente. Los decoradores proporcionan una alternativa flexible a la subclasificacin para ampliar la funcionalidad. 11.-Objeto compuesto (Composite) :El objeto compuesto permite tratar a jerarquas de objetos en individuales y composiciones de objetos uniformemente como si se tratase de objetos simples 12.-Proxy : Mantiene un representante de un objeto
Comportamiento
13.-Cadena responsabilidad (Chain of Responsibility ): Encadena los objetos de encubrimiento y pasa la peticin a lo largo de la cadena hasta que un objeto la maneja. Permite establecer la lnea que deben llevar los mensajes para que los objetos realicen la tarea indicada. 14.-Orden (Command) : Encapsula una operacin en un objeto, permitiendo ejecutar dicha operacin sin necesidad de conocer el contenido de la misma. 15.-Intrprete (Interpreter) :Considerando un lenguaje , define un representacin para su gramtica con un intrprete que usa la representacin para interpretar sentencias en el mismo lenguaje. 16.-Iterador (Iterator) :Proporciona un modo de tener acceso a los elementos de un objeto agregado secuencialmente sin exponer su representacin subyacente. 17.-Mediador (Mediator) :Define un objeto que coordine la comunicacin entre objetos de distintas clases, pero que funcionan como un conjunto. 18.-Recuerdo (Memento) : Sin violar encapsulacin, captura y externaliza el estado interno de un objeto de modo que el objeto pueda ser restaurado a este estado ms tarde.
Comportamiento
19.-Observador (Observer) : Define de uno a varios la dependencia entre objetos de modo que cuando se produce un cambio de estado del objeto, todos sus dependientes sean notificados y puestos al da automticamente. 20-Estado (State) :Permite que un objeto modifique su comportamiento cada vez que cambie su estado interno 21.-estrategia (Strategy) : Define una familia de algoritmos ( mtodos ), encapsula cada uno, y los hace permutables. La estrategia deja al algoritmo ( mtodo ) variar por separado de los clientes ( objetos ) que lo usan o invocan . 22.-mtodo plantilla ( template method) :Define el esqueleto de un algoritmo en una operacin, aplazando algunos pasos a subclases. El Mtodo de Plantilla deja a subclases redefinir los ciertos pasos de un algoritmo sin cambiar la estructura del algoritmo. 23.-Visitante (Visitor) :Permite definir nuevas operaciones sobre una jerarqua de clases sin modificar las clases sobre las que opera.
Patrones gof
Fabrica abstracta
constructor
Patrones gof
Mtodo de fabricacin
prototipo
Patrones gof
Instancia nica
adaptador
Patrones gof
Puente
Peso ligero
Patrones gof
decorador
Fachada
Patrones gof
proxy
Objeto compuesto
Patrones gof
Cadena de responsabilidad
Orden
Patrones gof
iterador
mediador
Patrones gof
observador
plantilla
Patrones gof
Visitador
Bibliografa
UML y patrones ;Craig Larman. Desingn Patterns; Gamma, Helm,johnson,vlissides. Wikipedia, Internet.