lunes, 8 de julio de 2013

1.1 CONCEPTOS DE LOS PATRONES DE SOFTWARE.

¿Qué es un patrón?

 Según  Christopher Alexander “cada patrón  describe  un  describe un problema   que  ocurre  una y otra vez  en nuestro entorno, así  como la solución a ese problema de tal modo que se pueda aplicar  esta solución un millón de veces , sin hacer lo mismo dos veces “ a la vez que propone una solución idónea aplicable a dicho problema.

4 elementos esenciales:
  1.           Un nombre de patrón  permite  describir, en una o dos palabras, un problema de diseño  junto con sus soluciones y consecuencias.
  2.            Problema describe cuando aplicar el patrón. Explica el problema y su contexto.
  3.            La solución describe los elementos que construyen  en el diseño, sus relaciones, responsabilidades y colaboraciones.
  4.          Las consecuencias explican los resultados de aplicar el patrón, sus costes y beneficios.
 Los patrones de diseño de  los cuales se clasifican como se muestra a continuación:
·         Patrones Creacionales: Inicialización y configuración de objetos.


Fábrica Abstracta ( Abstract Factory )
Método de Fabricación ( Factory Method )
Prototipado ( Prototype )
Singleton
MVC ( Model View Controler )







·         Patrones Estructurales: Separan la interfaz de la implementación. Se ocupan de cómo las clases y objetos se agrupan, para formar estructuras más grandes.


Adaptador (Adapter)
Puente (Bridge)
Objeto Compuesto (Composite)
Envoltorio (Decorator
Fachada (Facade)
Peso Ligero (Flyweight)
Apoderado (Proxy)




·        



Patrones de Comportamiento: Más que describir objetos o clases, describen la comunicación entre ellos.



Objetivos  de los patrones.
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.



No hay comentarios.:

Publicar un comentario