Soft Patrones
Enviado por 210896 • 5 de Marzo de 2013 • 2.027 Palabras (9 Páginas) • 294 Visitas
Patrones de diseño Gof
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.
Un patrón de diseño resulta ser 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 reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.
objetivos
Los patrones de diseño pretenden:
• Proporcionar catálogos de elementos reusables en el diseño de sistemas software.
• Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente.
• Formalizar un vocabulario común entre diseñadores.
• Estandarizar el modo en que se realiza el diseño.
• Facilitar el aprendizaje de las nuevas generaciones de diseñadores condensando conocimiento ya existente.
Asimismo, no pretenden:Imponer ciertas alternativas de diseño frente a otras.
• Eliminar la creatividad inherente al proceso de diseño.
Patrón de fábrica abstracta:
este tipo de patrón intenta proporcionar una interfaz para la creación de familias de objetos dependientes sin especificar sus clases concretas. De esta manera se facilita la modificación de cualquiera de esta familia de objetos sin realizar un gran esfuerzo. La Fábrica Abstracta se genera debido a la búsqueda de una manera sencilla de modificar objetos que tienen atributos comunes pero con ciertas diferencias.
Aplicabilidad:Este patrón se debe usar cuando:
• Un sistema deberá ser independiente de cómo estos productos son creados, compuestos y representados.
• Un sistema deberá ser configurado con una de las múltiples familias de productos.
• Una familia de objetos relacionados es diseñada para ser usada unida y se desea realzar esta restricción.
• Se quiere proveer una clase de librerías de producto, y se quiere revelar solo sus interfaces y no sus implementaciones.
Participantes:Los elementos participantes en este patrón son los siguientes:
• Fábrica Abstracta: declara una interfaz para operaciones que crea objetos abstractos de productos.
• Fábrica Concreta: implementa las operaciones para crear objetos concretos de productos.
• Producto Abstracto: declara una interfaz para un tipo de objeto producto.
• Producto Concreto: define un objeto producto para ser creado por la correspondiente fábrica concreta. También la interfaz del producto abstracto.
• Cliente: usa solamente la interfaz declarada por las clases AbstractFactory y AbstractProduct.
Patron experto
Lo que plantea este patrón es asignar una responsabilidad al experto en información, es decir, la clase que tiene la información necesaria para cumplir con la responsabilidad. El problema que resuelve el patrón experto está referido al principio más básico mediante el cual las responsabilidades son asignadas en el diseño orientado a objetos.
Aplicabilidad:
El experto es usado mas que cualquier otro patrón en la asignación de responsabilidades, es un principio usado continuamente en el diseño orientado a objetos. Experto no significa una obscura idea, sino que expresa la "intuición" común mediante el cual los objetos hacen cosas relacionadas con la información que ellos tienen.
Hay que notar que al cumplimiento de una responsabilidad requiere información que está esparcida entre clases diferentes de objetos. Esto implica que hay muchos "expertos " parciales que colaboran en la tarea.
El patrón experto es usado en diseños donde un objeto de software hace ciertas operaciones, que también son realizadas en el mundo real por el objeto que representa. Por ejemplo en el mundo real, sin el uso de ayuda electromecánica, una venta no puede decir el total; esto es un concepto inanimado. Alguien calcula el total de la venta. Pero en la tierra del diseño orientado a objetos, todos los objetos de software estan "vivos" o "animados", y ellos pueden tomar responsabilidades y hacer cosas. Fundamentalmente, ellos hacen cosas relacionadas con la información que ellos conocen. A esto lo llaman algunos el principio de "animación", es como una tira cómica donde todo esta "vivo".
El patrón experto -como muchas cosas en la tecnología de objetos- tienen una analogía con el mundo real. Nosotros comunmente le damos responsabilidades a individuos que tienen la información necesaria para cumplir con la tarea. Por ejemplo, la persona mas idónea para realizar un estado de ganancias y perdidas de una compañía, es la que tiene acceso a toda la información ( tal vez el jefe de finanzas). Y tal como colaboran entre si los objetos de software debido a que la información esta esparcida alrededor, el jefe de finanzas solicita la participación de otros individuos que colaboren para recabar la información que sea necesaria.
Beneficios:
• La encapsulación es mantenida, desde que los objetos usan sus propias informaciones para realizar tareas. Esto permite poco acoplamiento, lo cual conduce a sistemas mas robustos y de mantenimiento mucho mas fácil.
• El comportamiento está distribuído a lo largo de clases que tienen la información requerida, así se alienta una clase "pesoligero" de definiciones que son fáciles de entender y mantener. La alta cohesián tmabién es soportada.
Patrón creador
Este patrón asigna a la clase B la responsabilidad de crear una instancia de la clase A si alguna de las siguientes premisas es cierta:
• B agrega objetos de A.
• B contiene objetos de A.
• B registra instancias de objetos de A.
• B usa mucho obbjetos de A.
• B tiene la data inicial que sera pasada a A cuando es creada( asi B es un experto con respecto a la creacion de A).
B es el creador de los objetos de A.
Si más de una opción aplica, se prefiere una clase de B que agrega
...