Anda di halaman 1dari 12

Patrones de diseo

Programacin de aplicaciones

Definiciones bsicas
Patron
Modelo con el que se fabrican otros objetos Dibujo en papel que sirve, para traspasar el diseo al soporte pictrico guardando las simetras. Es el modelo que se sigue para hacer un bordado.

Diseo
Se define como el proceso previo de configuracin mental, "prefiguracin", en la bsqueda de una solucin en cualquier campo. Representacin grfica, bidimensional o tridimensional, de un objeto sobre cualquier soporte. Tarea creativa en la que se idea una cosa til y esttica. la apariencia de un producto o parte de ste.

www.themegallery.com

Patrones de diseo
Patrones de diseo (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. Los patrones de diseo son el esqueleto de las soluciones a problemas comunes en el desarrollo de software. Brindan una solucin ya probada y documentada a problemas de desarrollo de software que estn sujetos a contextos similares.

www.themegallery.com

Patrones de diseo (cont.)

Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno y describe tambin el ncleo de la solucin al problema, de forma que puede utilizarse un milln de veces sin tener que hacer dos veces lo mismo. Un patrn de diseo es una descripcin de clases y objetos comunicndose entre s adaptada para resolver un problema de diseo general en un contexto particular.

Cuando (no) utilizar patrones de diseo

La primera regla para aplicar patrones de diseo consiste en retrasar su aplicacin. Del mismo modo que no es aconsejable optimizar prematuramente, no se deben utilizar patrones de diseo antes de tiempo. Seguramente sea mejor implementar algo primero y asegurarse de que funciona, para luego utilizar el patrn de diseo para mejorar las flaquezas. Si comprende totalmente el dominio y el problema, tal vez sea razonable utilizar patrones desde el principio. De igual modo que tiene sentido utilizar los algoritmos ms eficientes desde el comienzo en algunas aplicaciones.

Elementos de un patrn
El tema de patrones de diseo es importante en el desarrollo de software actual: permite capturar la experiencia. Elementos de un patrn
El uso de patrones ayuda a obtener un software de calidad (reutilizacin y extensibilidad) La solucin: describe los elementos que El problema: describe cundo componen el diseo, sus aplicar el relaciones, patrn. responsabilidades y colaboracin.

Nombre: describe el problema de diseo.

Elementos de un patrn: su nombre, el problema (cuando aplicar un patrn), la solucin (descripcin abstracta del problema) y las consecuencias (costos y beneficios).

Clasificacin de los patrones


Segn su propsito, los patrones se clasifican como: Tratan con las formas de crear instancias de objetos. El objetivo de estos patrones es de abstraer el proceso de instanciacin y ocultar los detalles de cmo los objetos son creados o inicializados.

De creacin

Describen como las clases y objetos pueden ser combinados para formar De grandes estructuras y proporcionar nuevas funcionalidades. Estos objetos estructura adicionados pueden ser incluso objetos simples u objetos compuestos.

De comporta miento

caracterizan las formas en las que interactan y reparten responsabilidades las distintas clases u objetos. Ayudan a definir la comunicacin e iteracin entre los objetos de un sistema. El propsito de este patrn es reducir el acoplamiento entre los objetos

Fuente: GoF [Gamma]

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.

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.

Patrones de comportamiento

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.

Bibliografia

http://geeks.ms/blogs/gperez/archive/2009/08/22/patrone s-de-dise-241-o-screencast-capitulo-1-patr-243-nsingleton.aspx http://davidasorey.net/80/patrones-diseno-para-torpes-1 http://mit.ocw.universia.net/6.170/6.170/f01/pdf/lecture12.pdf http://siul02.si.ehu.es/~alfredo/iso/06Patrones.pdf http://msdn.microsoft.com/es-es/library/bb972240.aspx http://java.ciberaula.com/articulo/diseno_patrones_j2ee/ http://www.ingenierosoftware.com/analisisydiseno/patrone s-diseno.php Desing Patterns. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison Wesley, 1995.

Anda mungkin juga menyukai