Example: bankruptcy

Patrones de diseño orientado a objetos - UCM

Patrones de dise o orientado a objetosProgramaci n Orientada a ObjetosFacultad de Inform ticaJuan Pav n MestrasDep. Ingenier a del Software e Inteligencia ArtificialUniversidad Complutense MadridJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n2 Hacer software no es f cilDise ar software orientado a objetos es dif cil, y dise ar software orientado a objetos reutilizable es todav a m s dif cilChapter 1: Introduction. Design Patterns, The Gang of un software capaz de evolucionar tiene que ser reutilizable (al menos para las versiones futuras)Juan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n3 Dise ar para el cambio El software cambia para anticiparse a los cambios en los requisitos hay que dise ar pensando en qu aspectos pueden cambiar Los Patrones de dise o est n orientados al cambioJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n4 PatronesC mo llegar a ser un maestro de ajedrez Primero aprender las reglas del juego nombres de las piezas, movimientos legales, geometr a y orientaci n del tablero, etc.

1. Leer el patrón una vez para tener una visión general 2. Volver y estudiar la estructura, los participantes y las colaboraciones 3. Ver un ejemplo concreto codificado del patrón 4. Elegir nombres para los participantes del patrón que sean significativos en el contexto de la aplicación 5. Definir las clases 6.

Tags:

  Para

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Patrones de diseño orientado a objetos - UCM

1 Patrones de dise o orientado a objetosProgramaci n Orientada a ObjetosFacultad de Inform ticaJuan Pav n MestrasDep. Ingenier a del Software e Inteligencia ArtificialUniversidad Complutense MadridJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n2 Hacer software no es f cilDise ar software orientado a objetos es dif cil, y dise ar software orientado a objetos reutilizable es todav a m s dif cilChapter 1: Introduction. Design Patterns, The Gang of un software capaz de evolucionar tiene que ser reutilizable (al menos para las versiones futuras)Juan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n3 Dise ar para el cambio El software cambia para anticiparse a los cambios en los requisitos hay que dise ar pensando en qu aspectos pueden cambiar Los Patrones de dise o est n orientados al cambioJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n4 PatronesC mo llegar a ser un maestro de ajedrez Primero aprender las reglas del juego nombres de las piezas, movimientos legales, geometr a y orientaci n del tablero, etc.

2 A continuaci n aprender los principios relativo valor de las piezas, valor estrat gico de las casillas centrales, jaque cruzado, etc. Sin embargo, para llegar a ser un maestro, hay que estudiar las partidas de otros maestros Estas partidas contienen Patrones que deben ser entendidos, memorizados y aplicados repetidamente Hay cientos de estos patronesJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n5 PatronesC mo llegar a ser un maestro del software Primero aprender las reglas algoritmos, estructuras de datos, lenguajes de programaci n, etc. A continuaci n aprender los principios programaci n estructurada, programaci n modular, programaci n OO, programaci n gen rica, etc. Sin embargo, para llegar a ser un maestro, hay que estudiar los dise os de otros maestros Estos dise os contienen Patrones que deben ser entendidos, memorizados y aplicados repetidamente Hay cientos de estos patronesJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n6 Patrones Christopher Alexander (1977):Cada patr n describe un problema que ocurre una y otra vez en nuestro entorno, y describe la esencia de la soluci n a ese problema, de tal modo que pueda utilizarse esta soluci n un mill n de veces m s, sin siquiera hacerlo de la misma manera dos veces Un patr n es.

3 Una soluci n a un problema en un contexto particular recurrente (lo que hace la soluci n relevante a otras situaciones) ense a (permite entender c mo adaptarlo a la variante particular del problema donde se quiere aplicar) tiene un nombre para referirse al patr n Los Patrones facilitan la reutilizaci n de dise os y arquitecturas software que han tenido xitoJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n7 Motivaci n de los Patrones Capturan la experiencia y la hacen accesible a los no expertos El conjunto de sus nombres forma un vocabulario que ayuda a que los desarrolladores se comuniquen mejor Lenguajes de Patrones Ayudan a la gente a comprender un sistema m s r pidamente cuando est documentado con los Patrones que usa Los Patrones pueden ser la base de un manual de ingenier a de softwareSi el software se convierte en una ingenier a, las pr cticas exitosas deben ser documentadas sistem ticamente y ampliamente difundidasJuan Pav n MestrasFacultad de Inform tica UCM.

4 2004 Patrones de creaci n8 Motivaci n de los Patrones Facilitan la reestructuraci n de un sistema tanto si fue o no concebido con Patrones en mente Reutilizaci n: Los Patrones de dise o soportan la reutilizaci n de arquitecturas software Los armazones soportan la reutilizaci n del dise o y del c digo El software cambia para anticiparse a los cambios en los requisitos hay que dise ar pensando en qu aspectos pueden cambiar Los Patrones de dise o est n orientados al cambioJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n9 Clasificaci n de Patrones Patrones arquitecturales Expresan un paradigma fundamental para estructurar un sistema software Proporcionan un conjunto de subsistemas predefinidos, con reglas y gu as para organizar las relaciones entre ellos Patrones de dise o Compuestos de varias unidades arquitecturales m s peque as Describen el esquema b sico para estructurar subsistemas y componentes Patrones elementales (idioms)

5 Espec ficos de un lenguaje de programaci n Describen c mo implementar componentes particulares de un patr nJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n10 Ejemplos de Patrones Patrones arquitecturales Jerarqu a de capas Tuber as y filtros Cliente/Servidor Maestro-Esclavo Control centralizado y distribuido Patrones de dise o Proxies Factor as Adaptadores Composici n Broker Patrones elementales (idioms) Modularidad Interfaces m nimas Encapsulaci n objetos Acciones y Eventos ConcurrenciaJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n11 Patrones y Armazones Los Patrones de dise o tienen descripciones m s abstractas que los armazones Las descripciones de Patrones suelen ser independientes de los detalles de implementaci n o del lenguaje de programaci n (salvoejemplos usados en su descripci n) Los armazones est n implementados en un lenguaje de programaci n, y pueden ser ejecutados y reutilizados directamente Los Patrones de dise o son elementos arquitecturales m s peque os que los armazones Un armaz n incorpora varios Patrones Los Patrones se pueden usar para documentar armazones Los Patrones de dise o est n menos especializados que los armazones Los armazones siempre se aplican a un dominio de aplicaci n particularJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n12 Armazones (Frameworks) Caracter sticas Un armaz n ofrece un conjunto integrado de funcionalidad espec fica de un dominio.

6 Aplicaciones financieras, servicios de telecomunicaci n, sistemas de ventanas, bases de datos, aplicaciones distribuidas,n cleos de SO Los armazones invierten el control en ejecuci n entre la aplicaci n y el software sobre el que est basada El armaz n determina qu m todos se invocan en respuesta a eventos (se reusa el c digo del cuerpo principal y se escribe el c digo al que llama) Un armaz n es una aplicaci n medio-acabada Las aplicaciones completas se desarrollan mediante herencia, e instanciando componentes parametrizados del armaz nJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n13 Armazones (Frameworks)Diferencias con bibliotecasL GI CAESPEC FICADE LA APLICACI NBUCLE DEEVENTOSGUIADTsBASE DE DATOSMATH invocaArquitectura basada en biblioteca de clasesBUCLE DEEVENTOSGUIBASE DE DATOSADTsMATH invocaL GI CAESPEC FICADE LA APLICACI NArquitectura basada en armaz n"reutilizaci n de c digo"reutilizaci n de dise o y c digoJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n14 Ejemplo de patr n de dise o Modelo-Vista-Controlador Utilizado en Smalltalk [Krasner and Pope, 1988] Distribuci n de responsabilidades Utilizado en JFC (componentes Swing)

7 ControladorModeloVi staaplicaci nvisualizaci n en pantallaobjetos de control, eventosJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n15 Descripci n de Patrones de dise o Nombre e intenci n del patr n Referencia al patr n Incrementa el vocabulario de dise o Problema y contexto Cu ndo aplicar el patr n Soluci n Estructura: elementos que conforman el dise o, sus relaciones, responsabilidades y colaboraciones es una descripci n abstracta de c mo una disposici n de elementos (clases y objetos ) solucionan el problema Se ilustra con un ejemplo de c digo Consecuencias (positivas y negativas) Necesidades (tiempo, memoria), aspectos de implementaci n y lenguaje de programaci n, flexibilidad, extensibilidad, portabilidad Patrones relacionadosJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n16 Categor as de Patrones de dise o Patrones de creaci n Tratan de la inicializaci n y configuraci n de clases y objetos Patrones estructurales Tratan de desacoplar interfaz e implementaci n de clases y objetos : C mo se componen clases y objetos ?

8 Patrones de comportamiento Tratan de las interacciones din micas entre sociedades de clases y objetos : C mo interaccionan y se distribuyen responsabilidades los objetos ?Juan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n17C mo seleccionar un patr n de dise o Considerar c mo los Patrones de dise o solucionan problemas de dise o Buscar las intenciones de cada patr n Estudiar c mo se interrelacionan los Patrones Estudiar Patrones de prop sito similar Examinar la causa de un redise o Considerar qu deber a ser variable en un dise oJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n18C mo usar un patr n de dise o1. Leer el patr n una vez para tener una visi n general2. Volver y estudiar la estructura, los participantes y las colaboraciones3. Ver un ejemplo concreto codificado del patr n4. Elegir nombres para los participantes del patr n que sean significativos en el contexto de la aplicaci n5.

9 Definir las clases6. Definir nombres espec ficos de la aplicaci n para las operaciones en el patr n7. Implementar las operaciones que realizar n las responsabilidades y colaboraciones del patr nPatrones de creaci nJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n20 Patrones de creaci n En Java para crear un objeto se utiliza el operador newunObjeto = new ClaseObjetos (); Una clase Factor apuede ocuparse de los detalles de qu clase de implementaci n utilizar para crear un objeto de un tipo determinadoXYXZXF actoriacreaX():XSelecciona la implementac i n de XnewJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n21 Patrones de creaci n Permiten que el sistema sea independiente de c mo se crean, componen o representan sus objetos Sistemas m s dependientes de la composici n de objetos que de la herencia de clases Se trata de que el comportamiento se defina m s por la composici n de un conjunto peque o de comportamientos fundamentales que por la definici n mediante herencia de todos los comportamientos posibles Por tanto, la creaci n de objetos es algo m s que instanciar una claseJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n22 Patrones de creaci n Temas recurrentes en los Patrones de creaci n.

10 Encapsulan el conocimiento sobre las clases concretas que se van a utilizar Ocultan la manera de crear objetos de estas clases y c mo se juntan La visi n global de los objetos del sistema son sus interfaces (que pueden definirse como clases abstractas o interfaces) Se da independencia de qu se crea qui n lo crea c mo se crea cu ndo se creaJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n23 Patrones de creaci n Tipos de Patrones de creaci n De clase: usa herencia para variar la clase del objeto creado Factor a abstracta Factor a para construir familias de objetos Builder Factor a para construir objetos complejos de forma incremental De objeto: delega la creaci n en otro objeto M todo Factor a Interfaz que permite que sean las subclases las que determinen qu clase instanciar Prototype Factor a para clonar nuevos ejemplares copiando de un prototipo Singleton Object Pool Factor a que asegura que s lo hay un miembro (singleton) o un conjunto determinado (object pool) de una clase, y proporciona un punto global de acceso a lJuan Pav n MestrasFacultad de Inform tica UCM, 2004 Patrones de creaci n24M todo Factor a Prop sito:Permite que una clase difiera la instanciaci n a las subclases (son stas las que deciden qu clase instanciar) Otras denominaciones.


Related search queries