SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
DESARROLLO DE APLICACIONES II
ITI JOSÉ LUIS CARRANZA FLORES
CARLOS ALBERTO DÍAZ NAVARRO
701 DESPRESURIZADO
Patrones de Diseño.
“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 siquiera dos veces de la misma forma” –
Christopher Alexander.
“El lenguaje de patrones brinda a todo el que lo utilice el poder de crear una infinita variedad de
construcciones nuevas y únicas, de la misma forma que su lenguaje común le brinda el poder
de crear una infinita variedad de oraciones." - Christopher Alexander.
I. INTRODUCCIÓN.
Conceptos básicos
Patrón de diseño: Base para la búsqueda de soluciones a problemas comunes en el desarrollo de
software [...] (wikipedia)
Para que una solución sea considerada un patrón debe poseer ciertas características:
• Efectivo resolviendo problemas similares en ocasiones anteriores.
• Reutilizable: aplicable a diferentes problemas de diseño en distintas circunstancias.
Los patrones son una disciplina de resolución de problemas reciente en la ingeniería del software que
ha emergido en mayor medida de la comunidad de orientación a objetos, aunque pueden ser aplicados
en cualquier ámbito de la informática y las ciencias en general. Los patrones tienen raíces en muchas
áreas, incluyendo la literate-programming y más notablemente en el trabajo de Christopher Alexander
en Planeamiento Urbanístico y Arquitectura Civil.
En el libro “The Timeless Way of Building” [Alexander79] (obra de referencia donde se plantea por
primera vez la teoría de los patrones aplicada a la Arquitectura Civil y Urbanismo), el Arquitecto
Christopher Alexander define al patrón en la siguiente manera:
“Cada patrón es una regla de 3 partes, que expresa una relación entre un contexto, un problema y una
solución. Como un elemento en el mundo, cada patrón es una relación entre un contexto, un sistema
de fuerzas que ocurren repetidamente en ese contexto y una configuración espacial que permite que
esas fuerzas se resuelvan entre sí.”
“Como elemento de un lenguaje, un patrón es una instrucción que muestra como puede ser usada esta
configuración espacial una y otra vez para resolver el sistema de fuerzas, siempre que el contexto lo
haga relevante.”
• ¿Qué es un patrón de diseño?”
“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.”
Debemos tener en mente en todo momento al utilizar patrones:
o Los patrones son un punto de partida, no un destino.
o Los modelos no están bien o mal, sino que son más o menos útiles.
Patrones de Diseño.
II. DESARROLLO.
Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de
software.
En otras palabras, brindan una solución ya probada y documentada a problemas de desarrollo de
software que están sujetos a contextos similares. Debemos tener presente los siguientes elementos de
un patrón: su nombre, el problema (cuando aplicar un patrón), la solución (descripción abstracta del
problema) y las consecuencias (costos y beneficios) y se clasifican como se muestra a continuación:
• Patrones Creacionales: Inicialización y configuración de objetos.
o Fábrica Abstracta (Abstract Factory)
El problema a solucionar por este patrón es el de crear diferentes familias de objetos, como
por ejemplo la creación de interfaces gráficas de distintos tipos (ventana, menú, botón,
etc.).
Proporciona una interfaz para crear familias de objetos o que dependen entre sí, sin
especificar sus clases concretas
o Método de Fabricación (Factory Method)
Define una interfaz para crear un objeto.
Parte del principio de que las subclases determinan la clase a implementar.
o Prototipado (Prototype)
Se basa en la clonación de ejemplares copiándolos de un prototipo.
o Instancia Unica (Singleton)
Restringe la instanciación de una clase o valor de un tipo a un solo objeto y garantiza que
una clase solo tenga una instancia
o Constructor (Builder)
Separa la construcción de un objeto de su representación.
o MVC (Model View Controler)
Este patrón plantea la separación del problema en tres capas: la capa model, que representa
la realidad; la capa controler , que conoce los métodos y atributos del modelo, recibe y
realiza lo que el usuario quiere hacer; y la capa vista, que muestra un aspecto del modelo
y es utilizada por la capa anterior para interaccionar con el usuario.
• Patrones Estructurales: Se ocupan de cómo se combinan las clases y los objetos para formar
estructuras más grandes - Los patrones estructurales de clases hacen uso de la herencia para
componer interfaces o implementaciones.
o Adaptador (Adapter)
Convierte una interfaz en otra.
o Puente (Bridge)
Desacopla una abstracción de su implementación permitiendo modificarlas
independientemente.
o Objeto Compuesto (Composite)
Utilizado para construir objetos complejos a partir de otros más simples, utilizando para ello
la composición recursiva y una estructura de árbol.
o Envoltorio (Decorator)
Permite añadir dinámicamente funcionalidad a una clase existente, evitando heredar
sucesivas clases para incorporar la nueva funcionalidad.
o Fachada (Facade)
Permite simplificar la interfaz para un subsistema.
Patrones de Diseño.
o Peso Ligero (Flyweight)
Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con
información idéntica.
o Apoderado (Proxy)
Un objeto se aproxima a otro.
• Patrones de Comportamiento: Tienen que ver con algoritmos y con la asignación de
responsabilidades a objetos. Describen no solo patrones de clases y objetos, sino también
patrones de comunicación entre ellos Más que describir objetos o clases, describen la
comunicación entre ellos.
o Cadena de responsabilidad (Chain of responsibility)
La base es permitir que más de un objeto tenga la posibilidad de atender una petición.
o Orden (Command)
Encapsula una petición como un objeto dando la posibilidad de “deshacer” la petición.
o Intérprete (Interpreter)
Intérprete de lenguaje para una gramática simple y sencilla.
o Iterador (Iterator)
Define una interfaz que declara los métodos necesarios para acceder secuencialmente a una
colección de objetos sin exponer su estructura interna.
o Mediador (Mediator)
Coordina las relaciones entre sus asociados. Permite la interacción de varios objetos, sin
generar acoples fuertes en esas relaciones.
o Recuerdo (Memento)
Almacena el estado de un objeto y lo restaura posteriormente.
o Observador (Observer)
Notificaciones de cambios de estado de un objeto.
Al utilizarlos hemos de tener
bien claro qué patrón utilizar
en cada caso: si necesitamos
realizarle más que unos
cambios mínimos puede ser
señal de que no sea el más
adecuado en dichas
circunstancias.
Otro concepto del que se
puede oír hablar es el de
anti-patrones, que hace
referencia a los errores que
comúnmente suelen ocurrir
al intentar solucionar
problemas conocidos.
No es necesario memorizar
cómo funcionan todos los
patrones, pero sí es
importante saber de su
existencia para así recurrir a
ellos en caso necesario.
Patrones de Diseño.
III. CONCLUSIÓN.
VENTAJAS DESVENTAJAS
Los patrones 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 existente.
Los patrones NO pretenden
Imponer ciertas alternativas de diseño frente a
otras.
Eliminar la creatividad inherente al proceso de
diseño.
No es obligatorio utilizar los patrones.
Es aconsejable en el caso de tener el mismo
problema o similar que soluciona el patrón.
Abusar o forzar el uso de los patrones puede ser
un error.
IV. BIBLIOGRAFÍA.
• Patrones de Diseño - Design Patterns (Elements of Reusable Object-Oriented Software),
por Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
• Abstract Factory Pattern in VB .Net, por Rajesh V. S.
http://www.vbdotnetheaven.com/Code/Jun2003/2014.asp .
• Implementing the Command Pattern in .Net
http://blogs.vbcity.com/jspano/articles/198.aspx .
• Implementing the Visitor Design Pattern In .Net,
http://blogs.vbcity.com/jspano/articles/199.aspx .

Weitere ähnliche Inhalte

Was ist angesagt?

Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo2008PA2Info3
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
 
200812 - Patrones de Diseño de Software (parte 1/4)
200812 - Patrones de Diseño de Software (parte 1/4)200812 - Patrones de Diseño de Software (parte 1/4)
200812 - Patrones de Diseño de Software (parte 1/4)Javier Gonzalez-Sanchez
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamientoJuan Camilo
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworksDaniel Cam Urquizo
 
Diapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñoDiapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñodeyanireth
 
Presentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFPresentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFjuansoto86
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Instituto tecnológico de tijuana
Instituto tecnológico de tijuanaInstituto tecnológico de tijuana
Instituto tecnológico de tijuanajavier
 
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 bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puenteMario Cabrera
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 
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
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
DiseñO Orientado A Objetos
DiseñO Orientado A ObjetosDiseñO Orientado A Objetos
DiseñO Orientado A ObjetosFrancisco Godoy
 

Was ist angesagt? (20)

Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
200812 - Patrones de Diseño de Software (parte 1/4)
200812 - Patrones de Diseño de Software (parte 1/4)200812 - Patrones de Diseño de Software (parte 1/4)
200812 - Patrones de Diseño de Software (parte 1/4)
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamiento
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworks
 
Patrones de Diseño: Prototype
Patrones de Diseño: PrototypePatrones de Diseño: Prototype
Patrones de Diseño: Prototype
 
Diapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñoDiapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseño
 
Presentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFPresentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoF
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Instituto tecnológico de tijuana
Instituto tecnológico de tijuanaInstituto tecnológico de tijuana
Instituto tecnológico de tijuana
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Patrones bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puente
 
Patrones
PatronesPatrones
Patrones
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
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
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
DiseñO Orientado A Objetos
DiseñO Orientado A ObjetosDiseñO Orientado A Objetos
DiseñO Orientado A Objetos
 
Curso de Java Intermedio
Curso de Java IntermedioCurso de Java Intermedio
Curso de Java Intermedio
 

Ähnlich wie Patrones de diseño [DdA-2]

Ähnlich wie Patrones de diseño [DdA-2] (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
 
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
 
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
 
Patron de diseño
Patron de diseñoPatron de diseño
Patron de diseño
 
chuy
chuy chuy
chuy
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patronesdediseo 160927143256 (1)
Patronesdediseo 160927143256 (1)Patronesdediseo 160927143256 (1)
Patronesdediseo 160927143256 (1)
 
06 patrones
06 patrones06 patrones
06 patrones
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Introducción Patrones de Diseño
Introducción Patrones de DiseñoIntroducción Patrones de Diseño
Introducción Patrones de Diseño
 
type object
type objecttype object
type object
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
Monografia decorator
Monografia decoratorMonografia decorator
Monografia decorator
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii patrones de diseño
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
 

Kürzlich hochgeladen

FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptNancyMoreiraMora1
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 

Kürzlich hochgeladen (20)

FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 

Patrones de diseño [DdA-2]

  • 1. DESARROLLO DE APLICACIONES II ITI JOSÉ LUIS CARRANZA FLORES CARLOS ALBERTO DÍAZ NAVARRO 701 DESPRESURIZADO
  • 2. Patrones de Diseño. “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 siquiera dos veces de la misma forma” – Christopher Alexander. “El lenguaje de patrones brinda a todo el que lo utilice el poder de crear una infinita variedad de construcciones nuevas y únicas, de la misma forma que su lenguaje común le brinda el poder de crear una infinita variedad de oraciones." - Christopher Alexander. I. INTRODUCCIÓN. Conceptos básicos Patrón de diseño: Base para la búsqueda de soluciones a problemas comunes en el desarrollo de software [...] (wikipedia) Para que una solución sea considerada un patrón debe poseer ciertas características: • Efectivo resolviendo problemas similares en ocasiones anteriores. • Reutilizable: aplicable a diferentes problemas de diseño en distintas circunstancias. Los patrones son una disciplina de resolución de problemas reciente en la ingeniería del software que ha emergido en mayor medida de la comunidad de orientación a objetos, aunque pueden ser aplicados en cualquier ámbito de la informática y las ciencias en general. Los patrones tienen raíces en muchas áreas, incluyendo la literate-programming y más notablemente en el trabajo de Christopher Alexander en Planeamiento Urbanístico y Arquitectura Civil. En el libro “The Timeless Way of Building” [Alexander79] (obra de referencia donde se plantea por primera vez la teoría de los patrones aplicada a la Arquitectura Civil y Urbanismo), el Arquitecto Christopher Alexander define al patrón en la siguiente manera: “Cada patrón es una regla de 3 partes, que expresa una relación entre un contexto, un problema y una solución. Como un elemento en el mundo, cada patrón es una relación entre un contexto, un sistema de fuerzas que ocurren repetidamente en ese contexto y una configuración espacial que permite que esas fuerzas se resuelvan entre sí.” “Como elemento de un lenguaje, un patrón es una instrucción que muestra como puede ser usada esta configuración espacial una y otra vez para resolver el sistema de fuerzas, siempre que el contexto lo haga relevante.” • ¿Qué es un patrón de diseño?” “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.” Debemos tener en mente en todo momento al utilizar patrones: o Los patrones son un punto de partida, no un destino. o Los modelos no están bien o mal, sino que son más o menos útiles.
  • 3. Patrones de Diseño. II. DESARROLLO. Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software. En otras palabras, brindan una solución ya probada y documentada a problemas de desarrollo de software que están sujetos a contextos similares. Debemos tener presente los siguientes elementos de un patrón: su nombre, el problema (cuando aplicar un patrón), la solución (descripción abstracta del problema) y las consecuencias (costos y beneficios) y se clasifican como se muestra a continuación: • Patrones Creacionales: Inicialización y configuración de objetos. o Fábrica Abstracta (Abstract Factory) El problema a solucionar por este patrón es el de crear diferentes familias de objetos, como por ejemplo la creación de interfaces gráficas de distintos tipos (ventana, menú, botón, etc.). Proporciona una interfaz para crear familias de objetos o que dependen entre sí, sin especificar sus clases concretas o Método de Fabricación (Factory Method) Define una interfaz para crear un objeto. Parte del principio de que las subclases determinan la clase a implementar. o Prototipado (Prototype) Se basa en la clonación de ejemplares copiándolos de un prototipo. o Instancia Unica (Singleton) Restringe la instanciación de una clase o valor de un tipo a un solo objeto y garantiza que una clase solo tenga una instancia o Constructor (Builder) Separa la construcción de un objeto de su representación. o MVC (Model View Controler) Este patrón plantea la separación del problema en tres capas: la capa model, que representa la realidad; la capa controler , que conoce los métodos y atributos del modelo, recibe y realiza lo que el usuario quiere hacer; y la capa vista, que muestra un aspecto del modelo y es utilizada por la capa anterior para interaccionar con el usuario. • Patrones Estructurales: Se ocupan de cómo se combinan las clases y los objetos para formar estructuras más grandes - Los patrones estructurales de clases hacen uso de la herencia para componer interfaces o implementaciones. o Adaptador (Adapter) Convierte una interfaz en otra. o Puente (Bridge) Desacopla una abstracción de su implementación permitiendo modificarlas independientemente. o Objeto Compuesto (Composite) Utilizado para construir objetos complejos a partir de otros más simples, utilizando para ello la composición recursiva y una estructura de árbol. o Envoltorio (Decorator) Permite añadir dinámicamente funcionalidad a una clase existente, evitando heredar sucesivas clases para incorporar la nueva funcionalidad. o Fachada (Facade) Permite simplificar la interfaz para un subsistema.
  • 4. Patrones de Diseño. o Peso Ligero (Flyweight) Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con información idéntica. o Apoderado (Proxy) Un objeto se aproxima a otro. • Patrones de Comportamiento: Tienen que ver con algoritmos y con la asignación de responsabilidades a objetos. Describen no solo patrones de clases y objetos, sino también patrones de comunicación entre ellos Más que describir objetos o clases, describen la comunicación entre ellos. o Cadena de responsabilidad (Chain of responsibility) La base es permitir que más de un objeto tenga la posibilidad de atender una petición. o Orden (Command) Encapsula una petición como un objeto dando la posibilidad de “deshacer” la petición. o Intérprete (Interpreter) Intérprete de lenguaje para una gramática simple y sencilla. o Iterador (Iterator) Define una interfaz que declara los métodos necesarios para acceder secuencialmente a una colección de objetos sin exponer su estructura interna. o Mediador (Mediator) Coordina las relaciones entre sus asociados. Permite la interacción de varios objetos, sin generar acoples fuertes en esas relaciones. o Recuerdo (Memento) Almacena el estado de un objeto y lo restaura posteriormente. o Observador (Observer) Notificaciones de cambios de estado de un objeto. Al utilizarlos hemos de tener bien claro qué patrón utilizar en cada caso: si necesitamos realizarle más que unos cambios mínimos puede ser señal de que no sea el más adecuado en dichas circunstancias. Otro concepto del que se puede oír hablar es el de anti-patrones, que hace referencia a los errores que comúnmente suelen ocurrir al intentar solucionar problemas conocidos. No es necesario memorizar cómo funcionan todos los patrones, pero sí es importante saber de su existencia para así recurrir a ellos en caso necesario.
  • 5. Patrones de Diseño. III. CONCLUSIÓN. VENTAJAS DESVENTAJAS Los patrones 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 existente. Los patrones NO pretenden Imponer ciertas alternativas de diseño frente a otras. Eliminar la creatividad inherente al proceso de diseño. No es obligatorio utilizar los patrones. Es aconsejable en el caso de tener el mismo problema o similar que soluciona el patrón. Abusar o forzar el uso de los patrones puede ser un error. IV. BIBLIOGRAFÍA. • Patrones de Diseño - Design Patterns (Elements of Reusable Object-Oriented Software), por Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. • Abstract Factory Pattern in VB .Net, por Rajesh V. S. http://www.vbdotnetheaven.com/Code/Jun2003/2014.asp . • Implementing the Command Pattern in .Net http://blogs.vbcity.com/jspano/articles/198.aspx . • Implementing the Visitor Design Pattern In .Net, http://blogs.vbcity.com/jspano/articles/199.aspx .