Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Patrones de diseño de software

No description
by

Ale Cruz

on 12 July 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Patrones de diseño de software

Patrones Estructurales Adapter (Adaptador) Adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría utilizarla. Brigde (Puente) Desacopla una abstracción de su implementación de manera que ambas puedan ser modificadas independientemente sin necesidad de alterar por ello la otra. Composite (Objeto compuesto) Sirve para construir objetos complejos a partir de otros más simples y similares entre sí, gracias a la composición recursiva y a una estructura en forma de árbol. Decorator (Envoltorio) Añade funcionalidad a una clase dinámicamente.

Nos permite no tener que crear sucesivas clases que hereden de la primera incorporando la nueva funcionalidad, sino otras que la implementan y se asocian a la primera. Facade (Fachada) Proporciona una interfaz unificada para un conjunto de interfaces de un sistema. Define una interfaz de alto nivel que hace que el subsistema sea mas facil de usar. Flyweight (Peso ligero) Reduce la redundancia cuando gran cantidad de objetos poseen idéntica información. Proxy Proporciona un sustituto o representante de otro objeto para controlar el acceso a este. Patrones de Comportamiento Plantillas de Patrones La plantilla más común es la utilizada precisamente por el GoF y consta de los siguientes apartados: Nombre del patrón.
Clasificación del patrón
Intención
Motivación
Aplicabilidad
Estructura
Participantes
Colaboraciones
Consecuencias
Implementación
Código de ejemplo
Usos conocidos
Patrones relacionados Chain of Responsibility (Cadena de responsabilidad) Permite establecer la línea que deben llevar los mensajes para que los objetos realicen la tarea indicada.Cualquiera de los objetos receptores puede responder a la petición en función de un criterio establecido. Command (Comando) Encapsula una peticion en un objeto, permitiendo asi parametrizar a los clientes con distintas peticiones, encolar o llevar un registro de las peticiones y poder deshacer las operaciones. Interpreter (Intérprete) Dado un lenguaje, define una gramática para dicho lenguaje, así como las herramientas necesarias para interpretarlo. Iterator (Iterador) Proporciona un modo de acceder secuencialmente a los elementos de un objeto agregado sin exponer su representacion interna. Mediator (Mediador) Coordina las relaciones entre sus asociados. Permite la interacción de varios objetos, sin generar acoples fuertes en esas relaciones. Memento Tiene como finalidad almacenar el estado de un objeto en un momento dado de manera que se pueda restaurar en ese punto de manera sencilla. Observer (Observador) Define una dependencia de uno a muchos entre objetos, de forma que cuando un objeto cambia de estado se notifica y actualizan automáticamente todos los objetos. State (Estado) Se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo.Pareciera que cambia la clase del objeto. Strategy (Estrategia) Permite disponer de varios métodos para resolver un problema y elegir cuál utilizar en tiempo de ejecución. Template Method (Método plantilla) Define una serie de pasos, en donde los pasos serán redefinidos en las subclases Visitor (Visitante) Permite definir nuevas operaciones sobre una jerarquía de clases sin modificar las clases sobre las que opera.Es una forma de separar el algoritmo de la estructura de un objeto. Objetivos 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.

Solucionar un problema

Ser un concepto probado Caracteristicas Proporcionan Soluciones concretas

Proporcionan soluciones técnicas

Se utilizan en situaciones frecuente

La solución no es obvia

Describe participantes y relaciones entre ellos Mejor comunicación interna

Ahorro en tiempo y experimentos inútiles

Mejorar la calidad del diseño y la implementación

Se pueden implementar como “normas de productividad”

Los patrones pueden ser la base de un manual de ingeniería de software El libro más famoso de patrones de diseño conocido como “GOF (Gang-Of-Four, Equipo de Cuatro)” fue escrito por; Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides.
Siguiendo el libro de GOF los patrones se clasifican según el proposito para el que han sido definidos:
Creacionales: solucionan problemas de creación de instancias. Nos ayudan a encapsular y abstraer dicha creación.

Estructurales: solucionan problemas de composición (agregación) de clases y objetos.

De Comportamiento: soluciones respecto a la interacción y responsabilidades entre clases y objetos, así como los algoritmos que encapsulan Patrones creacionales Abstract Factory
(Fábrica abstracta) Builder
(Constructor virtual) • Factory Method
(Método de fabricación) Prototype
(Prototipo) Singleton
(Instancia única): Proporciona una interfaz para crear familias de objetos o que dependen entre sí, sin especificar sus clases concretas. También conocido como kit Aplicación 􀁺 Usa el patrón Abstract factory cuando:
􀁺 Un sistema debe ser independiente de cómo se crean, componen y representan sus productos
􀁺 Un sistema debe configurarse con una de entre varias familias de productos
􀁺 Una familia de productos relacionados están hechos para usarse juntos, y se necesita cumplir esa restricción
􀁺 Se desea ofrecer una biblioteca de clases-producto, revelando sus interfaces pero no sus implementaciones Estructura Separa la construcción de un objeto complejo de su
representación, de forma que el mismo proceso de
construcción pueda crear diferentes representaciones 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 creación de objetos Especifica los tipos de objetos a crear por medio de una instancia prototípica, y crear nuevos objetos copiando este prototipo Garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia. Cuando el algoritmo para crear un objeto complejo debe ser independiente de las partes que constituyen el objeto y cómo se juntan

Cuando el proceso de construcción debe permitir representaciones diferentes para el objeto que se está construyendo Aplicación Cuando una clase no puede anticipar el tipo de objetos que debe crear

Cuando una clase quiere que sus clases especifiquen los objetos que deben crear

Cuando una clase delega la responsabilidad a una subclase de ayuda (entre varias), y se quiere localizar el conocimiento de qué subclase de ayuda es la delegada Aplicación Cuando el sistema debe ser independiente de cómo se crean, componen y representan sus productos.

– Cuando las clases que se van a instanciar se especifican en tiempo de ejecución (por ejemplo, mediante carga dinámica).

– Para evitar la construcción de una jerarquía de factorías que paralelice la jerarquía de clases de productos.

– Cuando los objetos de una clase tengan sólo unas pocas combinaciones de estados diferentes. Aplicación 􀁺 Usa el patrón Singleton cuando:

􀁺 Debe haber exactamente una instancia de una clase, que debe ser accesible a los clientes a través de un punto de acceso conocido

􀁺 La instancia única pueda tener subclases, y los clientes deban ser capaces de usar las subclases sin modificar su propio código Aplicación Estructura Estructura Estructura Estructura Categorías de patrones Patrones de Alto nivel: Patrones de Arquitectura
Patrones de nivel medio: Patrones de Diseño
Patrones de bajo nivel: Dialecto(Idioms) Patrones de Arquitectura: Patrones de Diseño Elementos de un patrón

Nombre
El problema
La solución Categorías basadas en su PROPÓSITO

 Creacionales
 Estructurales
 Comportamiento Dialecto(Idioms)

Patrones de bajo nivel.
Solucionan problemas específicos de la implementación en un lenguaje de programación. Relación de principales patrones GoF (Gang Of Four) Como Resultado: Historia Aplicación en ámbitos concretos • Patrones de interfaces de usuario • Patrones para la construcción de sistemas empresariales • Patrones para la integración de sistemas • Patrones de flujos de trabajo Introducción Conocidos como "Design Patterns" son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software.

Es una solución a un problema de diseño con ciertas características que hayan comprobado su efectividad para resolver problemas similares pasados. GRACIAS. Los patrones estructurales están relacionados con cómo las clases y los objetos se combinan para dar lugar a estructuras más complejas. Estos patrones de diseño están relacionados con algoritmos y asignación de responsabilidades a los objetos. Los patrones de comportamiento describen no sólamente patrones de objetos o clases sino también patrones de comunicación entre ellos.
Full transcript