You are on page 1of 5

Universidad Tcnica de Manab

Facultad de Ciencias Informticas Ingeniera del Software II

Responsable:
Caldern Gema

Docente:
Ing. Maricela Pinargote

Nivel:
8vo A

Patrones de diseo o ms comnmente conocidos como "Design Patterns".Son soluciones simples y elegantes a problemas especficos y comunes del diseo orientado a objetos. Son soluciones basadas en la experiencia y que se ha demostrado que funcionan. Es evidente que a lo largo de multitud de diseos de aplicaciones hay problemas que se repiten o que son anlogos, es decir, que responden a un cierto patrn. Sera deseable tener una coleccin de dichos patrones con las soluciones ms ptimas para cada caso. Los patrones de diseo son la base para la bsqueda de soluciones a problemas comunes en el desarrollo de software y otros mbitos referentes al diseo de interaccin o interfaces. Un patrn de diseo resulta ser una solucin a un problema de diseo. Para que una solucin sea considerada un patrn debe poseer ciertas caractersticas. 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 diseo en distintas circunstancias. Un patrn de diseo nomina, abstrae e identifica los aspectos clave de una estructura de diseo comn, lo que los hace tiles para crear un diseo orientado a objetos reutilizable. Identifica las clases e instancias participantes, sus roles y colaboraciones y la distribucin de responsabilidades. Tiene, en general, 4 elementos esenciales (los cuales se explican en gran detalle en el libro Design Patterns Nombre: Permite describir, en una o dos palabras, un problema de diseo junto con sus soluciones y consecuencias. Al dar nombres a los patrones estamos incrementando nuestro vocabulario de diseo, lo cual nos permite disear y comunicarnos con un mayor nivel de abstraccin (en lugar de hablar de clases individuales nos referimos a colaboraciones entre clases). Problema: Describe cundo aplicar el patrn. Explica el problema y su contexto. A veces incluye condiciones que deben darse para que tenga sentido la aplicacin del patrn. Solucin: Describe los elementos que constituyen el diseo, sus relaciones, responsabilidades y colaboraciones. La solucin no describe un diseo o implementacin en concreto, sino que es ms bien una plantilla que puede aplicarse en muchas situaciones diferentes. Consecuencias: Son los resultados, as como ventajas e inconvenientes de aplicar el patrn. Los patrones de diseo no son dogmas que deben ser aceptados. Qu es y qu no es un patrn de diseo, es una cuestin que depende del punto de vista de cada uno y del nivel de abstraccin en que se trabaje. Categoras de patrones Segn la escala o nivel de abstraccin: Patrones de arquitectura: Aquellos que expresan un esquema organizativo estructural fundamental para sistemas de software.

Patrones de diseo: Aquellos que expresan esquemas para definir estructuras de diseo (o sus relaciones) con las que construir sistemas de software. Dialectos: Patrones de bajo nivel especficos para un lenguaje de programacin o entorno concreto.

Lista con los patrones de diseo a objetos ms habituales publicados en el libro "Design Patterns ". Patrones de creacin

Abstract Factory. Proporciona una interfaz para crear familias de objetos o que dependen entre s, sin especificar sus clases concretas. Builder. Separa la construccin de un objeto complejo de su representacin, de forma que el mismo proceso de construccin pueda crear diferentes representaciones. Factory Method. Define una interfaz para crear un objeto, pero deja que sean las subclases quienes decidan qu clase instanciar. Permite que una clase delegue en sus subclases la creacin de objetos. Prototype. Especifica los tipos de objetos a crear por medio de una instancia prototpica, y crear nuevos objetos copiando este prototipo. Singleton. Garantiza que una clase slo tenga una instancia, y proporciona un punto de acceso global a ella.

Patrones estructurales

Adapter. Convierte la interfaz de una clase en otra distinta que es la que esperan los clientes. Permiten que cooperen clases que de otra manera no podran por tener interfaces incompatibles. Bridge. Desvincula una abstraccin de su implementacin, de manera que ambas puedan variar de forma independiente. Composite. Combina objetos en estructuras de rbol para representar jerarquas de parte-todo. Permite que los clientes traten de manera uniforme a los objetos individuales y a los compuestos. Decorator. Aade dinmicamente nuevas responsabilidades a un objeto, proporcionando una alternativa flexible a la herencia para extender la funcionalidad. Facade. Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema. Define una interfaz de alto nivel que hace que el subsistema se ms fcil de usar. Flyweight. Usa el compartimiento para permitir un gran nmero de objetos de grano fino de forma eficiente. Proxy. Proporciona un sustituto o representante de otro objeto para controlar el acceso a ste. 2

Patrones de comportamiento

Chain of Responsibility. Evita acoplar el emisor de una peticin a su receptor, al dar a ms de un objeto la posibilidad de responder a la peticin. Crea una cadena con los objetos receptores y pasa la peticin a travs de la cadena hasta que esta sea tratada por algn objeto. Command. Encapsula una peticin en un objeto, permitiendo as parametrizar a los clientes con distintas peticiones, encolar o llevar un registro de las peticiones y poder deshacer la operaciones. Interpreter. Dado un lenguaje, define una representacin de su gramtica junto con un intrprete que usa dicha representacin para interpretar las sentencias del lenguaje. Iterator. Proporciona un modo de acceder secuencialmente a los elementos de un objeto agregado sin exponer su representacin interna. Mediator. Define un objeto que encapsula cmo interactan un conjunto de objetos. Promueve un bajo acoplamiento al evitar que los objetos se refieran unos a otros explcitamente, y permite variar la interaccin entre ellos de forma independiente. Memento. Representa y externaliza el estado interno de un objeto sin violar la encapsulacin, de forma que ste puede volver a dicho estado ms tarde. Observer. Define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambia de estado se notifica y actualizan automticamente todos los objetos. State. Permite que un objeto modifique su comportamiento cada vez que cambia su estado interno. Parecer que cambia la clase del objeto. Strategy. Define una familia de algoritmos, encapsula uno de ellos y los hace intercambiables. Permite que un algoritmo vare independientemente de los clientes que lo usan. Template Method. Define en una operacin el esqueleto de un algoritmo, delegando en las subclases algunos de sus pasos. Permite que las subclases redefinan ciertos pasos del algoritmo sin cambiar su estructura. Visitor. Representa una operacin sobre los elementos de una estructura de objetos. Permite definir una nueva operacin sin cambiar las clases de los elementos sobre los que opera.

WEB-GRAFIA o o o http://msdn.microsoft.com/es-es/library/bb972242.aspx http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o http://www.ingenierosoftware.com/analisisydiseno/patrones-diseno.php

You might also like