SlideShare una empresa de Scribd logo
1 de 21
Patrones de Diseño

Lic. César Alcántara Loayza
Propósito
                     El desarrollo de clases reusables toma
                      tres veces mas tiempo.
                     El uso de patrones permite hacer
                      clases reusables y extensibles,
                      documentando soluciones comunes a
                      problemas comunes.



CAL/Fundamentos                                   2
Propósito
                     El patrón de diseño es una
                      estructura abstracta de una solución
                      común a un problema común.

                     Nadie tiene un diseño reusable
                      correcto a la primera vez.



CAL/Fundamentos                                   3
Definición
                 Patrones de diseño son modelos para
                  comunicar, identificar y recordar
                  soluciones a problemas comunes.
                 Tienen 4 elementos:
                     Nombre del patrón:
                       
                           Solteron, fabrica, prototipo
                     Problema:
                          Motivación, intensión, por ejemplo del solterón
                           es prevenir de crear mas de una instancia de
                           una clase.
CAL/Fundamentos                                               4
Definición
                     Solución:
                          Especifica los elementos que constituyen el
                           patrón tal como, clases, métodos, interfaces,
                           estructuras de datos y algoritmos. También
                           incluye las relaciones, responsabilidades y
                           colaboraciones de los diferentes elementos.
                     Consecuencias:
                          Resultados.



CAL/Fundamentos                                              5
Refactoring
                 Muchos de los problemas que se
                  encuentran en la industria se han
                  experimentado por muchos años. Por lo
                  tanto las soluciones Refactorizadas estan
                  disponibles en la comunidad de
                  desarrolladores como un Tipo de
                  Patrón esto es, una solución recurrente
                  que incluye elementos comunes aunque
                  la implementación específica varíe.
CAL/Fundamentos                                 6
Patrones - Literatura
                 Antipatterns, by William J. Brown, ... Wiley
                  Computer Pub., 1998.
                 Analysis Patterns: Reusable Object Models,
                  Martin Fowler (Addison Wesley, 1997)
                 Design Pattern: Elements of Reusable Object-
                  Oriented Software, Erich Gamma, Richard
                  Helm, Ralph Johnson y John Vlissides, Addison
                  Wesley 1994.
                 Pattern-Oriented Software Architecture: A
                  System of Patterns, Frank Buschmann, John
                  Wiley & sons, 1996.
CAL/Fundamentos                                    7
Abstract Data Type
                     Un tipo de dato abstracto separa el
                      que del como. (implementación).




CAL/Fundamentos                                    8
Tipos de Patrones
                     Creacionales:
                         Crean objetos de la clase correcta,
                          particularmente útiles cuando se toma ventaja
                          del polimorfismo.
                     Estructurales:
                         Forman estructuras mas grandes de partes
                          individuales, generalmente de clases
                          diferentes.
                     De Comportamiento:
                         Describen interacción entre objetos.
CAL/Fundamentos                                                  9
Tipos de Patrones
                     Por su alcance los patrones pueden ser:
                         Patrones de objetos
                           
                               Especifican relaciones entre objetos. En general el
                               propósito es permitir que las instancias de diferentes
                               clases sean usadas en el mismo lugar en un patrón.
                               Evitan fijar la clase que acomete una tarea dada en
                               tiempo de compilación, en vez de ello la clase actual del
                               objeto puede escogerse en tiempo de ejecución. –
                               Frecuentemente usa composición de objetos para
                               establecer relaciones entre objetos.



CAL/Fundamentos                                                        10
Tipos de Patrones
                     Patrones de Clases
                         Especifican relaciones entre clases y sus
                          subclases. Tienden a usar herencias para
                          establecer relaciones. Fija relaciones en tiempo
                          de compilación.




CAL/Fundamentos                                            11
Diez componentes
                     Intención:
                         El problema que el patrón trabaja.
                     Motivación:
                         El escenario
                     Aplicabilidad:
                         Describe las circunstancias bajo las cuales es
                          apropiado su uso.
                     Estructura:
                         Muestra normalmente un conjunto de objetos o
                          diagramas de clase.


CAL/Fundamentos                                                12
Diez componentes
                     Participantes:
                          Son las clases y objetos que los
                          comprenden.
                     Colaboraciones:
                         Describen como las clases y objetos fuera
                          del patrón interactúan con el patrón.
                     Consecuencias:
                         Resultados de escoger un patrón-> + ó -
CAL/Fundamentos                                          13
Diez componentes
                     Implementación
                         Conjunto de códigos que usa el patrón.
                          Detalles y trucos que se necesita hacer
                          para que funciones.
                     Usos (Know uses):
                         Sistemas donde se halla el patrón.
                          Ejemplos prácticos.
                     Patrones relacionados.

CAL/Fundamentos                                         14
Patrón solteron
                     El patrón solterón es un patrón creacional
                      de objetos. Creacional porque esta
                      relacionado en si mismo con la creación de
                      objetos, mas específicamente con
                      asegurarse que no se cree mas de un
                      objeto. Es un patrón de objetos pues
                      trabaja con los vínculos entre objetos en
                      vez de las relaciones entre clases y sus
                      subclases.


CAL/Fundamentos                                       15
Patrón solteron
                     Intención del solteron:
                         Garantizar que una clase tenga solo una
                          instancia.
                         Proporcionar acceso a dicha instancia.




CAL/Fundamentos                                        16
Patrón solteron
                     Motivación:
                         Es que algún objeto del mundo real no
                          tenga mas de una instancia. Ej. Muchos
                          computadores solo tienen una salida de
                          audio y solo pueden ejecutar un sonido.




CAL/Fundamentos                                         17
Patrón solteron
                     Aplicabilidad:
                         La clase deberá tener exactamente una
                          instancia la cual deberá ser accesible
                          desde un método en la clase.
                         La clase puede tener subclases y los
                          clientes pueden usar la subclase como una
                          instancia de la superclase sin tener que
                          cambiar de código.

CAL/Fundamentos                                        18
Patrón solteron
                     Estructura




CAL/Fundamentos                    19
Patrón solteron
                     Estructura:
                         Consiste de una única clase. Esta clase toma el
                          rol de singleton en la operación. Sin embargo no
                          es necesario que se llame singleton.
                         Esta clase tiene un único campo llamado
                          theInstance el que apunta al objeto que es la
                          única instancia.
                         La aplicabilidad de un patrón describe las
                          circunstancias bajo las cuales el patrón es
                          apropiado; esto es, cuando debiera y cuando no
                          debiera usarse.

CAL/Fundamentos                                              20
Patrón solteron
                     La clase singleton tiene dos métodos, un
                      método estático getInstance() que
                      regresa un apuntador o referencia a la
                      única instancia y un constructor
                      protegido.




CAL/Fundamentos                                     21

Más contenido relacionado

La actualidad más candente

Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Patrones bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puenteMario Cabrera
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ijjegonzalezf
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patronesMarvin Zumbado
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creaciónAutentia
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamientoJuan Camilo
 
Introducción a los patrones de diseño
Introducción a los patrones de diseñoIntroducción a los patrones de diseño
Introducción a los patrones de diseñoMario Solarte
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetoskarlalopezbello
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño IIjjegonzalezf
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a ObjetosJuan Carlos Riva
 
Curso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic netCurso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic netSauro Ortiz
 

La actualidad más candente (20)

Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Patrones bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puente
 
Patrones Creacionales
Patrones CreacionalesPatrones Creacionales
Patrones Creacionales
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creación
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamiento
 
Introducción a los patrones de diseño
Introducción a los patrones de diseñoIntroducción a los patrones de diseño
Introducción a los patrones de diseño
 
Patrones de Diseño: Prototype
Patrones de Diseño: PrototypePatrones de Diseño: Prototype
Patrones de Diseño: Prototype
 
patron composite
patron compositepatron composite
patron composite
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetos
 
06 patrones
06 patrones06 patrones
06 patrones
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Abstract factory
Abstract factoryAbstract factory
Abstract factory
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Curso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic netCurso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic net
 

Similar a Sesion 15 patrones de diseño

Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
Patrones de diseño [DdA-2]
Patrones de diseño [DdA-2]Patrones de diseño [DdA-2]
Patrones de diseño [DdA-2]Karloz Dz
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseñoIsrael Rey
 
Crítica A UML - Based Pattern
Crítica A UML - Based PatternCrítica A UML - Based Pattern
Crítica A UML - Based Patternjbuelvas
 
Conceptos y definiciones de poo. alumno.juan manuel osorio baruch
Conceptos y definiciones de poo. alumno.juan manuel osorio baruchConceptos y definiciones de poo. alumno.juan manuel osorio baruch
Conceptos y definiciones de poo. alumno.juan manuel osorio baruchJuan Osorio Baruch
 
Patrones de-diseño-mañana
Patrones de-diseño-mañanaPatrones de-diseño-mañana
Patrones de-diseño-mañanaale abad aguilar
 
El patrón Estrategia de diseño de software
El patrón Estrategia de diseño de softwareEl patrón Estrategia de diseño de software
El patrón Estrategia de diseño de softwaretorrubia
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POOLibertad25
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptjuan gonzalez
 
Diapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñoDiapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñodeyanireth
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado2008PA2Info3
 
conseptos basicos de la poo
conseptos basicos de la pooconseptos basicos de la poo
conseptos basicos de la poomahega261193
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoEliseo Castro
 
Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8Henry Ayala
 
Sesion 13 diseño iii diseño de objetos
Sesion 13 diseño iii    diseño de objetosSesion 13 diseño iii    diseño de objetos
Sesion 13 diseño iii diseño de objetosJulio Pari
 

Similar a Sesion 15 patrones de diseño (20)

Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
chuy
chuy chuy
chuy
 
Patrones de diseño [DdA-2]
Patrones de diseño [DdA-2]Patrones de diseño [DdA-2]
Patrones de diseño [DdA-2]
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Crítica A UML - Based Pattern
Crítica A UML - Based PatternCrítica A UML - Based Pattern
Crítica A UML - Based Pattern
 
Conceptos y definiciones de poo. alumno.juan manuel osorio baruch
Conceptos y definiciones de poo. alumno.juan manuel osorio baruchConceptos y definiciones de poo. alumno.juan manuel osorio baruch
Conceptos y definiciones de poo. alumno.juan manuel osorio baruch
 
Patrones de-diseño-mañana
Patrones de-diseño-mañanaPatrones de-diseño-mañana
Patrones de-diseño-mañana
 
Introducción Patrones de Diseño
Introducción Patrones de DiseñoIntroducción Patrones de Diseño
Introducción Patrones de Diseño
 
El patrón Estrategia de diseño de software
El patrón Estrategia de diseño de softwareEl patrón Estrategia de diseño de software
El patrón Estrategia de diseño de software
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.ppt
 
Diapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñoDiapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseño
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
conseptos basicos de la poo
conseptos basicos de la pooconseptos basicos de la poo
conseptos basicos de la poo
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento Unificado
 
Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8
 
Programacion oientado a objetos
Programacion oientado a objetosProgramacion oientado a objetos
Programacion oientado a objetos
 
Sesion 13 diseño iii diseño de objetos
Sesion 13 diseño iii    diseño de objetosSesion 13 diseño iii    diseño de objetos
Sesion 13 diseño iii diseño de objetos
 

Más de Julio Pari

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Julio Pari
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCJulio Pari
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMJulio Pari
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic EnterpriseJulio Pari
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioJulio Pari
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoJulio Pari
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de ArquitecturaJulio Pari
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISIJulio Pari
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIJulio Pari
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasJulio Pari
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIJulio Pari
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaJulio Pari
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialJulio Pari
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialJulio Pari
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sqlJulio Pari
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuarioJulio Pari
 

Más de Julio Pari (20)

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPC
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSM
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic Enterprise
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor Osorio
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de Arquitectura
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa II
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilas
 
UML Java
UML JavaUML Java
UML Java
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISI
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hija
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen Parcial
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
 

Sesion 15 patrones de diseño

  • 1. Patrones de Diseño Lic. César Alcántara Loayza
  • 2. Propósito  El desarrollo de clases reusables toma tres veces mas tiempo.  El uso de patrones permite hacer clases reusables y extensibles, documentando soluciones comunes a problemas comunes. CAL/Fundamentos 2
  • 3. Propósito  El patrón de diseño es una estructura abstracta de una solución común a un problema común.  Nadie tiene un diseño reusable correcto a la primera vez. CAL/Fundamentos 3
  • 4. Definición  Patrones de diseño son modelos para comunicar, identificar y recordar soluciones a problemas comunes.  Tienen 4 elementos:  Nombre del patrón:  Solteron, fabrica, prototipo  Problema:  Motivación, intensión, por ejemplo del solterón es prevenir de crear mas de una instancia de una clase. CAL/Fundamentos 4
  • 5. Definición  Solución:  Especifica los elementos que constituyen el patrón tal como, clases, métodos, interfaces, estructuras de datos y algoritmos. También incluye las relaciones, responsabilidades y colaboraciones de los diferentes elementos.  Consecuencias:  Resultados. CAL/Fundamentos 5
  • 6. Refactoring  Muchos de los problemas que se encuentran en la industria se han experimentado por muchos años. Por lo tanto las soluciones Refactorizadas estan disponibles en la comunidad de desarrolladores como un Tipo de Patrón esto es, una solución recurrente que incluye elementos comunes aunque la implementación específica varíe. CAL/Fundamentos 6
  • 7. Patrones - Literatura  Antipatterns, by William J. Brown, ... Wiley Computer Pub., 1998.  Analysis Patterns: Reusable Object Models, Martin Fowler (Addison Wesley, 1997)  Design Pattern: Elements of Reusable Object- Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, Addison Wesley 1994.  Pattern-Oriented Software Architecture: A System of Patterns, Frank Buschmann, John Wiley & sons, 1996. CAL/Fundamentos 7
  • 8. Abstract Data Type  Un tipo de dato abstracto separa el que del como. (implementación). CAL/Fundamentos 8
  • 9. Tipos de Patrones  Creacionales:  Crean objetos de la clase correcta, particularmente útiles cuando se toma ventaja del polimorfismo.  Estructurales:  Forman estructuras mas grandes de partes individuales, generalmente de clases diferentes.  De Comportamiento:  Describen interacción entre objetos. CAL/Fundamentos 9
  • 10. Tipos de Patrones  Por su alcance los patrones pueden ser:  Patrones de objetos  Especifican relaciones entre objetos. En general el propósito es permitir que las instancias de diferentes clases sean usadas en el mismo lugar en un patrón. Evitan fijar la clase que acomete una tarea dada en tiempo de compilación, en vez de ello la clase actual del objeto puede escogerse en tiempo de ejecución. – Frecuentemente usa composición de objetos para establecer relaciones entre objetos. CAL/Fundamentos 10
  • 11. Tipos de Patrones  Patrones de Clases  Especifican relaciones entre clases y sus subclases. Tienden a usar herencias para establecer relaciones. Fija relaciones en tiempo de compilación. CAL/Fundamentos 11
  • 12. Diez componentes  Intención:  El problema que el patrón trabaja.  Motivación:  El escenario  Aplicabilidad:  Describe las circunstancias bajo las cuales es apropiado su uso.  Estructura:  Muestra normalmente un conjunto de objetos o diagramas de clase. CAL/Fundamentos 12
  • 13. Diez componentes  Participantes:  Son las clases y objetos que los comprenden.  Colaboraciones:  Describen como las clases y objetos fuera del patrón interactúan con el patrón.  Consecuencias:  Resultados de escoger un patrón-> + ó - CAL/Fundamentos 13
  • 14. Diez componentes  Implementación  Conjunto de códigos que usa el patrón. Detalles y trucos que se necesita hacer para que funciones.  Usos (Know uses):  Sistemas donde se halla el patrón. Ejemplos prácticos.  Patrones relacionados. CAL/Fundamentos 14
  • 15. Patrón solteron  El patrón solterón es un patrón creacional de objetos. Creacional porque esta relacionado en si mismo con la creación de objetos, mas específicamente con asegurarse que no se cree mas de un objeto. Es un patrón de objetos pues trabaja con los vínculos entre objetos en vez de las relaciones entre clases y sus subclases. CAL/Fundamentos 15
  • 16. Patrón solteron  Intención del solteron:  Garantizar que una clase tenga solo una instancia.  Proporcionar acceso a dicha instancia. CAL/Fundamentos 16
  • 17. Patrón solteron  Motivación:  Es que algún objeto del mundo real no tenga mas de una instancia. Ej. Muchos computadores solo tienen una salida de audio y solo pueden ejecutar un sonido. CAL/Fundamentos 17
  • 18. Patrón solteron  Aplicabilidad:  La clase deberá tener exactamente una instancia la cual deberá ser accesible desde un método en la clase.  La clase puede tener subclases y los clientes pueden usar la subclase como una instancia de la superclase sin tener que cambiar de código. CAL/Fundamentos 18
  • 19. Patrón solteron  Estructura CAL/Fundamentos 19
  • 20. Patrón solteron  Estructura:  Consiste de una única clase. Esta clase toma el rol de singleton en la operación. Sin embargo no es necesario que se llame singleton.  Esta clase tiene un único campo llamado theInstance el que apunta al objeto que es la única instancia.  La aplicabilidad de un patrón describe las circunstancias bajo las cuales el patrón es apropiado; esto es, cuando debiera y cuando no debiera usarse. CAL/Fundamentos 20
  • 21. Patrón solteron  La clase singleton tiene dos métodos, un método estático getInstance() que regresa un apuntador o referencia a la única instancia y un constructor protegido. CAL/Fundamentos 21