Patrones De Diseño
Enviado por ericktx • 17 de Junio de 2012 • 1.784 Palabras (8 Páginas) • 1.484 Visitas
INTRODUCCION
Los patrones reciclan ideas, no código. Los desarrolladores de software han aprendido a reutilizar código y de esa manera tendrán su marco de trabajo básico para usar cuando se enfrenten a problemas de similares características. Una de las formas de solucionar estos problemas de manera eficiente y efectiva es la utilización de los Patrones de Diseño.
Los patrones de diseño, ayudan a diseñar soluciones de software, definiendo comportamientos comunes que suelen encontrarse en distintos componentes de software
PATRONES DE DISEÑO
Un patrón de diseño provee un esquema para refinar los subsistemas o componentes de un sistema de software, o las relaciones entre ellos. Describe la estructura comúnmente recurrente de los componentes en comunicación, que resuelve un problema general de diseño en un contexto particular (Buschman et al., 1996).
Son menores en escala que los patrones arquitectónicos, y tienden a ser independientes de los lenguajes y paradigmas de programación. Su aplicación no tiene efectos en la estructura fundamental del sistema, pero sí sobre la de un subsistema (Buschman et al., 1996), debido a que especifica a un mayor nivel de detalle, sin llegar a la implementación, el comportamiento de los componentes del subsistema. La tabla 12 presenta algunos patrones de diseño, junto a los atributos de calidad que propician y los atributos que entran en conflicto con la aplicación del patrón, según Buschmann et al. (1996).
Estos patrones representan una forma de formalizar la reusabilidad de código ante situaciones similares a las ya conocidas. Se plantean como una buena herramienta para el diseño y la documentación de aplicaciones y frameworks.
Son descripciones de objetos y clases que se comunican y que son capaces de solucionar un problema de diseño en general, en un contexto en particular. Según el Arq. Alexander Christopher (70’s) los patrones de diseño son "Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo ni siquiera dos veces de la misma forma".
Importancia de los patrones de diseño
Para diseñar software orientado a objetos reutilizable hay que encontrar los objetos pertinentes, factorizarlos en clases con la granularidad adecuada, definir interfaces de clases y jerarquías de herencia y establecer las principales relaciones entre esas clases y objetos. El diseño debe ser específico del problema que estamos manejando, pero también lo suficientemente general para adecuarse a futuros requisitos y problemas. También queremos evitar el rediseño, o al menos minimizarlo.
Lo que no hay que hacer es resolver cada problema partiendo desde cero. Por el contrario, se deben reutilizar soluciones que ya han sido útiles en el pasado. Cuando se encuentra una solución buena, debe usarse una y otra vez. Por tanto, nos encontramos con patrones recurrentes de clases y comunicaciones entre objetos en muchos sistemas orientados a objetos. Estos patrones resuelven problemas concretos de diseño y hacen que los diseños orientados a objetos sean más flexibles, elegantes y reutilizables. Los patrones ayudan a los diseñadores a reutilizar buenos diseños al basar los nuevos diseños en la experiencia previa. Un diseñador familiarizado con dichos patrones puede aplicarlos inmediatamente en los problemas de diseño sin tener que redescubrirlos. Los patrones de diseño hacen que sea más fácil reutilizar buenos diseños y arquitecturas. Al expresar como patrones de diseño técnicas que ya han sido probadas, las estamos haciendo más accesibles para los desarrolladores de nuevos sistemas
FRAMEWORK
Marco de aplicación o conjunto de bibliotecas orientadas a la reutilización a muy gran escala de componentes software para el desarrollo rápido de aplicaciones. En esta categoría se incluye la Biblioteca de Componentes Visuales (VCL) de CodeGear, Swing y AWT para el desarrollo de aplicaciones con formularios en Java, Struts, para aplicaciones web también en Java, Ruby On Rails para aplicaciones web con Ruby, y las antiguas Microsoft Foundation Classes y Turbo Vision de Borland.
Las principales ventajas de la utilización de un framework son:
1. El desarrollo rápido de aplicaciones. Los componentes incluidos en un framework constituyen una capa que libera al programador de la escritura de código de bajo nivel.
2. La reutilización de componentes software al por mayor. Los frameworks son los paradigmas de la reutilización.
3. El uso y la programación de componentes que siguen una política de diseño uniforme. Un framework orientado a objetos logra que los componentes sean clases que pertenezcan a una gran jerarquía de clases, lo que resulta en bibliotecas más fáciles de aprender a usar.
Las desventajas de los frameworks son:
1. La dependencia del código fuente de una aplicación con respecto al framework. Si se desea cambiar de framework, la mayor parte del código debe reescribirse.
2. La demanda de grandes cantidades de recursos computacionales debido a que la característica de reutilización de los frameworks tiende a generalizar la funcionalidad de los componentes. El resultado es que se incluyen características que están "de más", provocando una sobrecarga de recursos que se hace más grande en cuanto más amplio es el campo de reutilización.
El término framework tiene una acepción más amplia, en donde además de incluir una biblioteca de componentes reutilizables, es toda una tecnología o modelo de programación que contiene máquinas virtuales, compiladores, bibliotecas de administración de recursos en tiempo de ejecución y especificaciones de lenguajes. Tal es el caso del framework Microsoft .NET.
CLASIFICACION DE LOS PATRONES
Según Alexander Christopher cada Patrón es una regla de tres partes, la cual expresa una relación entre un cierto contexto, un problema y una solución.
Características de los patrones
Proporcionan Soluciones concretas
Proporcionan soluciones técnicas
Se utilizan en situaciones frecuentes
Favorece la reutilización de código
...