Patrones GoF. of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides
|
|
- José Antonio Quintero Soler
- hace 7 años
- Vistas:
Transcripción
1 Patrones GoF ANALISIS Y DISEÑO O O.O. Patrones GoF GoF (gang of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides
2 Patrones GoF Cómo usar un patrón n de diseño? Conocer en gran parte la solución genérica que brinda cada patrón n y el tipo de problemática que resuelven Evaluar la posibilidad de aplicar el o los patrones en el problema correspondiente Definir la implementación n de los mismos en nuestro modelo. Nombre de clases, métodos y atributos Implementar los métodos m correspondientes Patrones GoF De creación: Forma de crear instancias. Abstraer y ocultar cómo c son creados e inicializados los objetos (Factoría a (Factory( Factory), Singleton) Estructurales: Cómo se combinan clases y objetos para formar nuevas estructuras y proporcionar nuevas funciones (Adaptador (Adapter( Adapter)) De comportamiento: Ayudan a definir la comunicación n e interacción n de los objetos. Reducir acoplamiento (Observer). 2
3 Patrones G o F Patrones de Creación Abstract Factory Factory Method Singleton Patrones Estructurales Composite Adapter Patrones de Comportamiento Observer Patrones De creación Separan la forma en que se crean los objetos, para tratar las clases a crear de forma genérica. Se ocultan los métodos y clases concretas de tal forma que al variar su implementación no se vea afectado el resto de la aplicación. 3
4 Factoria (Factory) Su propósito es definir una interface para crear objetos donde se delega la creación de las instancias a las subclases. La clase factoría devuelve una instancia de un objeto según los datos que se le pasan como parámetros. Se encarga de centralizar el sitio donde se crean los objetos, normalmente donde se crean objetos de una misma "familia. Factoria (Factory) Motivación: Un sistema debe ser independiente de cómo se crean, componen y representan sus productos Un sistema debe ser configurado con una familia de productos Una familia de objetos relacionados está diseñada para ser usada conjuntamente, y es necesario hacer cumplir esta restricción. Quiere proporcionar una biblioteca de clases, y sólo quiere revelar sus interfaces, no sus implementaciones. 4
5 Factoria (Factory) Una clase C cliente de una clase abstracta A necesita crear instancias de subclases de A que no conoce <<abstract>> Documento open() close() save() revert() setdoc <<abstract>> Aplicacion creardocumento() nuevodocumento() opendocumento() Clase A Documento d d = creardocumento(); setdoc.add(d); d.open() método factoria MiDocumento MiAplicacion creardocumento() Clase C return new MiDocumento Ejemplo del patrón Factory Method Factoria (Factory) Aplicabilidad Una clase no puede anticipar la clase de objetos que debe crear. Una clase desea que sus subclases especifiquen los objetos que debe crear. <<abstract>> Figura crearmanipulador() Cliente <<abstract>> Manipulador downclick() drag() upclick() Linea Circulo ManipuladorLinea ManipuladorCirculo crearmanipulador() crearmanipulador() Ejemplo del patrón Abstract Factory 5
6 Factoria (Factory) Implementación Dos posibilidades Creador es una clase abstracta con un método factoría a abstracto. Creador es una clase concreta que ofrece una implementación n por defecto del método m factoría. a. El método m factoría a puede tener un parámetro que identifica a la clase del objeto a crear. Factoria (Factory) Programa public abstract Figura int lado = 0; public Figura (int lado) this.lado = lado; public abstract int getarea (); public abstract void dibujar (Graphics g, int x, int y); 6
7 Factoria (Factory) public Circulo public Circulo (int lado) super (lado); public int getarea () return (Math.PI x lado x lado); public void dibujar (Graphics g, int x, int y) g.setcolor (Color.black); g.setdrawarc (x, y, lado, lado, 0, 360); public Cuadrado public Cuadrado (int lado) super (lado); public int getarea () return (lado x lado); public void dibujar (Graphics g, int x, int y) g.setcolor (Color.black); g.setdrawrect (x, y, lado, lado); Factoria (Factory) public void FactoriaDeFiguras public static final int CUADRADO = 0 public static final int CIRCULO = 1 public Figura getfigura (int tipo, int lado) if (tipo == this.cuadrado) return (new Cuadrado (lado)) else return (new Circulo (lado)) 7
8 Factoria (Factory) Ventajas: Aisla las clases concretas para el cliente Facilita el intercambio entre familias de clase Promueve la consistencia Desventajas: No es sencillo agregar elementos a la factoría. a. Requiere modificar la interface Requiere modificar las subclases Patrones GoF Abstract Factory Este patrón n proporciona una interface para crear familias de objetos relacionados o dependientes sin especificar sus clases concretas. 8
9 Abstract Factory Se utiliza cuando Un sistema debería a ser independiente de cómo sus productos son creados, compuestos o representados. Un sistema sería a configurado con uno de sus múltiples m familias de productos. Se necesita proveer una librería a de clases de productos y se desea mostrar sus interfaces, no sus implementaciones. Se necesita que un conjunto de productos relacionados sean utilizados juntos. Abstract Factory La estructura típica t es: Abstract Factory: : Definición n de interfaces para la familia de productos genéricos Concrete Factory: Implementación n de las interfaces de los productos para cada una de las familias concretas Abstract Product: Definición n de los métodos de creación n genéricos en la interface de la fábrica. f (retornan las interfaces genéricas) Concrete Product: Implementación n de una fábrica f para cada una de las familias concretas. 9
10 Abstract Factory Estructura típicat Abstract Factory Abstract Product Concrete Product Concrete Factory Abstract Factory Ventajas y Desventajas Aisla las Clases concretas: El cliente manipula instancias a través s de las interfaces abstractas. Facilita el intercambio de familias de productos: Se puede cambiar la configuración n de un producto simplemente cambiando la factoria concreta. Promueve la consistencia entre productos: Cuando los objetos de una familia trabajan juntos, la aplicación n que los usa debe utilizar la misma familia Es difícil manejar nuevas clases de productos: Implica cambios en la clase Abstract Factory. 10
11 Patrones GoF Factory Method Define una interface para crear un objeto, pero deja a las subclases decidir qué clase instanciar. Se usa cuando: Una clase no puede anticipar la clase de objetos que debe crear. Una clase quiere que sus subclases especifiquen las clases que ella debe crear. Factory Method Utiliza una clase constructora (al estilo del Abstract Factory) ) abstracta con unos cuantos métodos m definidos y otro(s) abstracto(s): el dedicado a la construcción n de objetos de un subtipo de un tipo determinado. Las clases principales en este patrón n son el creador y el producto. 11
12 Factory Method El creador necesita crear instancias de productos, pero el tipo concreto de producto no debe ser forzado en las subclases del creador, porque entonces las posibles subclases del creador deben poder especificar subclases del producto para utilizar. Factory Method <<abstract>> Documento open() close() save() revert() setdoc <<abstract>> Aplicacion creardocumento() nuevodocumento() opendocumento() Clase A Documento d d = creardocumento(); setdoc.add(d); d.open() método factoria MiDocumento MiAplicacion creardocumento() Clase C return new MiDocumento Ejemplo del patrón Factory Method 12
13 Factory Method Una desventaja es tener que crear una subclase de la clase Creator sólo para crear un objeto de la clase ConcreteProduct Product Creator FactoryMethod() AnOperation() Product=FactoryMethod() ConcretProduct ConcreteCreator FactoryMethod() AnOperation() return new ConcreteProduct Factory Method // Definimos la clase abstracta Creator public abstract class Creator // Operación n que realiza public void anoperation() () Product aproduct = factorymethod() (); // Definimos método m abstracto protected abstract Product factorymethod() (); 13
14 Factory Method //Ahora definimos el creador concreto. public class ConcreteCreator extends Creator protected Product factorymethod() return new ConcreteProduct() (); //Y definimos el producto y su implementación n concreta. public interface Product String hacer(); public class ConcreteProduct implements Product Factory Method //Y un ejemplo de uso : public static void main(string args[]) Creator acreator; acreator = new ConcreteCreator(); acreator.anoperation(); 14
15 Patrones GoF Singleton Asegura que sólo se cree una instancia de la clase y provee un punto global de acceso a ésta. Este patrón es útil cuando se quiere tener solamente un objeto único instanciado (Ej: Cola de impresión, Conexión a BD, etc). Singleton Cuenta con un método o propiedad compartida (shared) que se encarga de regresar la clase instanciada. El constructor de la clase debe ser privado para evitar que se creen instancias de la clase. Dentro de la clase tendremos nuestra instancia viva. 15
16 Singleton Singleton unicainstancia datosingleton return unicainstancia instancia() operacionsingleton() getsingleton() Singleton final class Coche /* la única instancia de coche que se permitirá. No es obligatorio crear el Singleton estáticamente, se podría proveer un método que lo cree */ private static Coche c = new Coche(); // atributos private Motor motor = new Motor();... //constructor privado para que no se pueda instanciar private Coche() //vacío porque creamos la instancia estáticamente // método que devuelve el "singleton" Coche public static Coche getcoche () return c; // resto de métodos public void acelerar() // implementación del metodo 16
17 Singleton class ClaseSingletonEjemplo static ClaseSingletonEjemplo unicainstancia; public static ClaseSingletonEjemplo Instance() if (unicainstancia == null) unicainstancia = new ClaseSingletonEjemplo(); return unicainstancia; private ClaseSingletonEjemplo() ; Patrones GoF Composite Compone objetos en estructuras arborescentes para representar jerarquías as TODO-Partes Permite manejar indistintamente objetos individuales y composiciones de objetos 17
18 Composite Cliente Componente Operación() Adicionar(Componente) Remover(Componente) obtenerhijo(int) Hoja Operación() Composite Operación() Adicionar(Componente) Remover(Componente) obtenerhijo(int) hijos Para todo g en hijos: g.operación() Composite La estructura típica t es: Componente Declara la interface para objetos en la composición n y se encarga de acceder y manejar sus componentes hijo Hoja Representa objetos hoja (sin hijos) en la composición n y define un comportamiento específico Composite Almacena componentes hijo y define un comportamiento (adicionar, eliminar, modificar ) ) para sus componentes hijos 18
19 Composite Componente ObjetoGráfico Dibujar() Adicionar(ObjetoGráfico) Remover(ObjetoGráfico) obtenerhijo(int) Hoja Hoja Hoja Línea Texto Rectángulo Dibujar() Dibujar() Dibujar() En Dibujar() de figura: para todo g en el contenedor elementos g.dibujar() Composite elementos Figura Dibujar() Adicionar(ObjetoGráfico g) Remover(ObjetoGráfico g) obtenerhijo(int) Adicionar o remover g del contenedor elementos Patrones GoF Adapter Convierte la interface de una clase en otra interface que el cliente espera Permite a las clases trabajar juntas ya que de otra manera no lo podrían hacer debido a que las interfaces son incompatibles. 19
20 Adaptador (Adapter( Adapter/Wrapper) Se asegura de convertir la interface de una clase en otra que el cliente espera. Permite la colaboración de ciertas clases a pesar de tener interfaces incompatibles Se desea crear una clase reutilizable que debe colaborar con clases no relacionadas o imprevistas. La funcionalidad de Adaptador depende de la similitud entre la interfaz de las clases Objetivo y Adaptado. Adaptador Objetivo Define la interface de dominio específico que el cliente usa Cliente Colabora con los objetos que conforman la interface Objetivo Adaptado Define una interface necesita adaptarse Adaptador Adapta la interface interface Objetivo existente que Adaptado a la 20
21 Adaptador (Adapter( Adapter/Wrapper) Estructura 1: Herencia Múltiple Interface que el cliente espera Interface existente que se requiere adaptar Adapta la interface Adaptee al Target esperado usando herencia múltiple Adaptador (Adapter( Adapter/Wrapper) Estructura 2: Objeto Adaptador Interface que el cliente espera Interface existente que se requiere adaptar Adapta la interface Adaptee al Target esperado usando un objeto adaptador 21
22 Adaptador Cliente Objetivo Requerimiento() Adaptado RequerimientoEspecífico() implementación Adaptador Requerimiento() Realmente se invoca el RequerimientoEspecífico() Adaptador (Adapter( Adapter/Wrapper) Editor Cliente ElementoGrafico marco() crearmanipulador() Objetivo Adaptador return text.getextension ElemLinea marco() crearmanipulador() ElemTexto marco() crearmanipulador() +texto return new ManipuladorTexto Adaptado TextView getextension() 22
23 Adaptador (Adapter( Adapter/Wrapper) Objetivo, Cliente TreeDisplay getchildren(node) CreateGraphicNode(Node) display() BuildTree(Node n) Abstracta getchildren(n); for each child addgraphicnode(creategraphicnode(child)); buildtree(child) DirectoryTreeDisplay getchildren(node) creategraphicnode(node) adaptador FileSystemEntity adaptado Patrones GoF Observer Define una dependencia de uno a muchos entre objetos así que cuando un objeto cambia de estado, todos los objetos que dependen de él l son notificados para que se actualicen automáticamente. ticamente. 23
24 Patrones GoF Observer Define una dependencia de uno a muchos objetos de tal manera que cuando un objeto cambia su estado, todas sus dependencias son notificadas actualizándose de manera automática Se usa cuando una abstracción tiene dos aspectos y uno depende del otro. Encapsular estos dos aspectos en objetos separados permite actualizarlos y reutilizarlos de manera independiente. Cuando un cambio en un objeto requiere cambios en otros objetos asociados sin importar el tipo de esos cambios! Observer Sus principales componentes son: Sujeto: Puede tener asociados uno o más m s observadores Observador: Es notificado cuando el sujeto cambia de estado. Cada observador pregunta al sujeto acerca de su estado con el fin de sincronizar su estado con el del sujeto. 24
25 Observer a b c Observadores: N Observadores que cambian su presentación dependiendo de los datos del Sujeto x x x y x a b c z a b c Ejemplo: Uso de una interfaz gráfica para separar la presentación de la lógica de los datos Promedio a = 60 b = 30 c = 10 Sujeto Todos los Observadores son notificados de cualquier cambio en el estado del Sujeto cambio Notificación de Solicitudes, modificaciones Observer Conoce a todos sus Observadores Define una inteface actualizable para objetos que podrían ser notificados de cambios en el Sujeto Sujeto Asociar (Observador) Desasociar (Observador) Notificar() Mantiene un estado y nofitica a los Observadores de sus cambios SujetoConcreto estadosujeto darestado() modificarestado() observadores Observador Actualizar() Para todo o en observadores: o.actualizar() Implementa la Interface para mantener la actualización acorde con el estado del Sujeto sujeto ObservadorConcreto estadoobservador Actualizar() darestado() retorna estadosujeto estadoobservador= sujeto.darestado() 25
26 Observer Ejemplo de Implementación utilizando un Manejador del Cambio: (evita al sujeto tener las referencias de sus observadores) 26
PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype
PATRONES DE DISEÑO DE CREACIÓN Abstract Factory Builder Factory Method Prototype Patrones de diseño de creación Abstraen el proceso de creación de instancias Encapsulan el conocimiento sobre las clases
Más detallesPatrones de Diseño. Patrón estructural Adapter. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de Diseño Patrón estructural Adapter Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Convertir la interfaz de una clase en otra distinta que espera el cliente Permitir
Más detallesDesarrollo de Aplicaciones Empresariales
Diego Seco Material adaptado de: Eduardo Mosqueira y Óscar Pedreira {eduardo, opedreira}@udc.es LIDIA & LBD Universidade da Coruña 2014-1 Desarrollo de Aplicaciones Empresariales Patrones Gangof Four(GOF)
Más detallesPatrones de Diseño Orientados a Objetos 1 Parte
Patrones de Diseño Orientados a Objetos 1 Parte Idea detrás del Diseño de Patrones "...describa un problema que sucede una y otra vez en nuestro entorno, y luego describa el núcleo de la solución a ese
Más detallesPatrones de Diseño Orientados a Objetos
Patrones de Diseño Orientados a Objetos Idea detrás del Diseño de Patrones "...describa un problema que sucede una y otra vez en nuestro entorno, y luego describa el núcleo de la solución a ese problema,
Más detallesPatrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08
Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos
Más detallesAplicaciones Móviles. Unidad 2: Patrones de Diseño de Software
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Aplicaciones Móviles Unidad 2: Patrones de Diseño de Software Ing. Manuel López Ramos Unidad 1 Qué es un Patrón de Diseño de Software? Qué es
Más detallesUNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA
UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA Analista Programador Universitario Universidad Nacional de Jujuy JTP Jorge R. Mendoza Implementación de propiedades de los objetos Java Contenido
Más detallesIdiom SimpleFactory Factory Method Abstract Factory Conclusiones
Tema 3.3.1 Patrones: Factory Ingeniería del Software II J. Peña (Teoría) Índice Introducción Idiom SimpleFactory Factory Method Abstract Factory Conclusiones Introducción Factory no es un patrón, sino
Más detallesPATRONES DE DISEÑO. Mtro. Omar Zárate
PATRONES DE DISEÑO http://ozarate.net PATRONES DE DISEÑO El concepto promovido por Alexander fue retomado en el software y popularizado en el libro Design Patterns: Elements of Reusable Object Oriented
Más detallesPatrones de Diseño. Patrones de creación. Técnicas de Programación - Curso 2007/08
Patrones de Diseño Patrones de creación Técnicas de Programación - Curso 2007/08 Patrones de creación Introducción Abstraen el proceso de instanciación Encapsulan conocimiento sobre qué clases concretas
Más detallesConcurso: Cuánto sabes de JAVA?
Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos
Más detallesIntroducción a los Patrones de Diseño de Software
Introducción a los Patrones de Diseño de Software Unidad 1 Patrones de Diseño de Software Introducción Diseño Orientado a Objetos El objetivo del Diseño Orientado a Objetos es resolver un problema No se
Más detallesFederico Peinado
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Más detallesClases abstractas e interfaces en Java
Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura
Más detallesPatrones de diseño. Reuso del desarrollo a nivel arquitectural. M. Telleria, L. Barros, J.M. Drake
Patrones de diseño Reuso del desarrollo a nivel arquitectural 1 Patrones de diseño Soluciones de diseño que son válidas en distintos contextos y que han sido aplicadas con éxito en otras ocasiones. Se
Más detallesPatrones de Diseño. Diseño y Arquitectura de Software Grado en Ingeniería de Software. Universidad Rey Juan Carlos
Patrones de Diseño Diseño y Arquitectura de Software Grado en Ingeniería de Software Universidad Rey Juan Carlos Carlos E. Cuesta carlos.cuesta@urjc.es 1 Índice Introducción Clasificación Patrones Creacionales
Más detallesProgramación 4. Diseño Patrones de Diseño
Programación 4 Diseño Patrones de Diseño Contenido Introducción Patrones de Diseño Singleton Composite State Observer Programación 4 Diseño: Patrones de Diseño www.fing.edu.uy/inco/cursos/prog4 2012 2
Más detallesJulio Ariel Hurtado Alegría. 8 de abril de 2013
Julio Ariel Hurtado Alegría 8 de abril de 2013 Julio A. Hurtado A. Universidad del Cauca 1 / 40 Contenido Introducción Julio A. Hurtado A. Universidad del Cauca 2 / 40 La vida real está llena de esquemas
Más detallesTema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011
Tema 6 Patrones de Diseño Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción a los patrones de diseño. Patrón del Método plantilla. Patrón Composición. Patrón Estrategia. Clases anónimas
Más detallesEl patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.
Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones
Más detallesUniversidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos
Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos Rivera Figueroa Gerardo René Alvares Flores Jairo Ángeles Pastor Luis Eduardo Gonzales Sarabia
Más detallesPolimorfismo Java y Servicios Web I Master en Ingeniería Matemática
Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Introducción. Conversión
Más detalles18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Más detallesPatrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype
Temario Patrones de Diseño de Software Fundamentos de Ingeniería de SW Jocelyn Simmonds GOF: Patrones Creacionales Patrones Estructurales ILI-236 (JS) Patrones II 1 / 31 ILI-236 (JS) Patrones II 2 / 31
Más detallesProgramación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión VIII Composición... 4 Herencia... 8 Herencia e Inicialización... 11 Constructor de Superclase...
Más detallesTutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.
Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. olopez@uniandino.com.co DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado
Más detallesClases Abstractas e Interfaces
Clases Abstractas e Interfaces Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear y utilizar clases y métodos abstractos
Más detallesCLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez
CLASE 9: DISEÑO CON PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Diseño de Objetos Identificar requerimientos, crear un modelo del dominio, agregar métodos a las clases
Más detallesHerencia y Polimorfismo
Herencia y Polimorfismo Dra. Maricela Bravo Universidad Autónoma Metropolitana Unidad Azcapotzalco 1 Herencia en el mundo real Cosa Medio de telecomunicación Medio de transporte Coche Vehiculo aéreo Objeto
Más detallesPatrón Façade Patrón Template Method Conclusiones
Tema 3.3.1 Patrones: Façade y Template Method Ingeniería del Software II J. Peña (Teoría) Índice Patrón Façade Patrón Template Method Conclusiones Índice Patrón Façade Patrón Template Method Conclusiones
Más detallesDerechos de Acceso: COMPOSICION
CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Composición... 4 Herencia... 8 Herencia e Inicialización... 12 Constructor de Superclase...
Más detallesTaller de Programación I. Tema 10: Herencia en Java
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 10: Herencia en Java Ing. Manuel López Ramos (versión 1) Parte I Qué es la herencia entre clases?
Más detallesTema 1. Herencia y Polimorfismo
ÍNDICE EDA. Unidad didáctica I: Conceptos de Java para Estructuras de Datos Tema 1. Herencia y Polimorfismo 1. Relaciones entre clases: Reutilización del software. 2. La Herencia como soporte Java del
Más detallesUnidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
Más detallesCapitulo 2. Marco Teórico
Capitulo 2. Marco Teórico En el presente capítulo se describirán los conceptos utilizados para el desarrollo de ésta tesis. Entre los conceptos a mencionar se encuentran Patrones de Diseño, los Principios
Más detallesPatrones de Diseño. (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo
Patrones de Diseño (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo 2010 1 Diseño Arquitectónico Diseño Arquitectónico Arquitectura del Software
Más detallesModelado Estructural F E B R E R O,
Modelado Estructural F E B R E R O, 2 0 1 4 Modelado Estructural Sirve para describir los diferentes tipos y relaciones estáticas existentes entre los diferentes objetos de un sistema. A la hora de desarrollar
Más detallesIngeniería del software I Patrones de Diseño
Qué es un Patrón de Diseño? Ingeniería del software I Patrones de Diseño Los patrones de diseño capturan soluciones a problemas particulares de diseño. abstraen estructuras de diseño recurrentes Incorporan
Más detallesPatrones de Diseño. Patrón de comportamiento Observer. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de Diseño Patrón de comportamiento Observer Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Define una dependencia de uno-a-muchos entre objetos de forma que, cuando
Más detallesPatrones de Diseño. Patrón de comportamiento Iterator. Técnicas de programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de Diseño Patrón de comportamiento Iterator Técnicas de programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Proporcionar acceso secuencial a los elementos de un agregado, sin exponer
Más detallesDefinición. Mónica E. García García Feb 07
Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere
Más detalles3.1 Introducción a TDA y OO. Capítulo III. Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java
Capítulo III 3.1 Introducción a TDA y OO Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java Problemas en el Desarrollo de Grandes Programas ❶ Cómo organizar una pieza de software, de manera
Más detallesPatrones de diseño para C# Los 23 modelos de diseño
38 Patrones de diseño para C# Los 23 modelos de diseño El objeto Catálogo puede utilizar estas subclases concretas para instanciar los productos. No obstante si fuera necesario incluir nuevas clases de
Más detallesPatrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte.
Más detallesIMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA
IMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA Implementación de conceptos P.O.O. en Java Temario 2. Conceptos de Programación Orientada a Objetos 1. Conceptos de P.O.O. 2. Implementación de conceptos P.O.O
Más detallesClases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Más detallesEl concepto de Java Package Encapsulation
El concepto de Java Package encapsulation no es conocido por todos. Todos los desarrolladores conocemos que existe public, private, protected y package visibility como operadores de ámbito. Sin embargo
Más detallesPatrones de Diseño. Patrón de comportamiento Strategy. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de Diseño Patrón de comportamiento Strategy Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Definir una familia de algoritmos, encapsularlos y hacerlos intercambiables
Más detallesPatrones de Diseño. Patrones de creación. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de Diseño Patrones de creación Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de creación Introducción Abstraen el proceso de instanciación Encapsulan conocimiento sobre
Más detallesWeb Frameworks y patrones de diseño
Web Frameworks y patrones de diseño Ingeniería del software Universidad de Los Andes Nerio Moran, Alvaro Araujo 29 de Enero,2018 Ingenieria del software Universidad de Los Andes 29 de Enero,2018 1 / 26
Más detallesPatrones de Diseño. Ing. Miguel Angel Cedeño Garcidueñas
Patrones de Diseño Ing. Miguel Angel Cedeño Garcidueñas miguelcedega@correo.fie.umich.mx Patrones de Diseño Diseñar software orientado a objetos es difícil, pero diseñar software orientado a objetos reutilizable
Más detallesHOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2009/2010 Nombre:... Fecha: / 12 / 2009 HOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++ Esta hoja de ejercicios
Más detallesClases y herencia. FJP Unidad 8. Diseño de clases
Clases y herencia FJP Unidad 8 Encapsulamiento Diseño de clases El encapsulamiento provee protección de atributos y métodos definidos en una clase de forma tal que comportamiento de objetos de una clase
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
Más detalles2. Tratamiento de objetos con JAVA
2. Tratamiento de objetos con JAVA David Contreras Bárcena (ETSI) - Comillas 71 2.1 Ciclo de Vida de los Objetos Los objetos tienen un tiempo de vida y consumen recursos durante el mismo. Cuando un objeto
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesPatrones de Diseño. Patrón de comportamiento Iterator. Técnicas de Programación - Curso 2007/08
Patrones de Diseño Patrón de comportamiento Iterator Técnicas de Programación - Curso 2007/08 Propósito Proporcionar acceso secuencial a los elementos de un agregado, sin exponer su representación interna
Más detallesPatrones de Software para la Asignación de Responsabilidades
Patrones de Software para la Asignación de Responsabilidades Unidad 2 Patrones de Diseño de Software Patrones Un patrón es una descripción de un problema y cómo resolverlo Descripción Escenario Solución
Más detallesJava interface y extensibilidad
En Java el uso de interfaces es algo común en la programación del día a día. Sin embargo también es bastante común tener muchas dudas de para que sirve un interface. Normalmente nos podemos encontrar con
Más detallesJava Singleton. Ejemplo de Java Singleton (Patrones y ClassLoaders)
Como ya he comentado en varias ocasiones el conocimiento de los patrones de diseño es algo clave a la hora de abordar desarrollos y de solucionar problemas.hoy voy a hablar un poco a detalle de uno de
Más detallesUnidad 2. Elementos Intermedios del Lenguaje
Unidad 2 Elementos Intermedios del Lenguaje Paradigmas de Programación Un paradigma de programación se refiere a la forma en que se entiende, diseña y desarrolla una aplicación Imperativo Declarativo Funcional
Más detallesDISEÑAR APLIC I ACIO I N O ES 1
DISEÑAR APLICACIONES 1 El análisis y diseño de sistemas de software es un área amplia y compleja. En este capítulo se expone una pequeña introducción a la metodología de análisis y diseño. El estudio detallado
Más detallesReutilización con Delegación y Herencia
Reutilización con Delegación y Herencia Carlos Fontela cfontela@fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas
Más detallesA3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2009 2 Métodos virtuales (1) 2c2009 3 Métodos virtuales
Más detallesPor ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.
POLIMORFISMO El polimorfismo es la característica de la programación orientada a objetos que permite modificar la instancia de un objeto en tiempo de ejecución basado en una jerarquía de herencia. De esta
Más detallesProgramación II Tipos Abstractos de Datos(TAD)
Programación II Tipos Abstractos de Datos(TAD) Definición Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos mediante una especificación independiente de cualquier representación.
Más detallesProgramación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Diseño orientado a objetos El diseño orientado a objetos surge de la idea de traspasar a los sistemas de software,
Más detallesAbstract Factory (Fábrica abstracta -GoF)
Franco Guidi Polanco 1 Abstract Factory (Fábrica abstracta -GoF) Descripción Presenta una interfaz para la creación de familias de productos, de forma tal que el cliente que las utiliza no requiera conocer
Más detallesPOO: Clases y objetos
POO: Clases y objetos Programación de aplicaciones 1 Introducción En los lenguajes de programación orientados a objetos, tenemos la posibilidad de extender el lenguaje mediante la creación de nuevo tipos,
Más detallesIntroducción a Java. Fernando Cerezal López. 24 Noviembre 2005
24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos
Más detallesA3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2 cb := CuentaBancaria new. cc := CuentaCorriente
Más detallesCLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez
CLASE 9: DISEÑO CON PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Diseño de Objetos Identificar requerimientos, crear un modelo del dominio, agregar métodos a las clases
Más detallesPROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Más detallesJava Interfaces y el concepto de simplicidad
El concepto de Java Interfaces es de sobra conocido por todos. Qué son los Java interfaces?. Esta es una muy buena pregunta.la mayor parte de las veces cuando uno mira la definición de interface suele
Más detallesFederico Peinado
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Más detalles! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java
Introducción a la programación orientada a objetos Curso de Programación en Java! Fundamentos de la POO! Comportamiento y estado! Clases y objetos en Java Contenidos Luis Guerra l.guerra@upm.es Enero 2012
Más detallesAlgoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez
Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común
Más detallesCC61J / CC Taller de UML Apuntes de Clase
CC61J / CC5404 - Taller de UML Apuntes de Clase Prof. Andrés Muñoz Ordenes 08/06/2011 Agenda Motivación Diseño del Problema Diagrama de Colaboración Conceptos Notación y Sintaxis Usos Ejemplo: Caja de
Más detallesPNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos
PNFSI Asignatura: Desarrollo de Software Tema 1: Programación Orientada a Objetos Ing. Zamantha González Abril, 2008 Contenido Conceptos básicos Clase Objeto o instancia Atributos Métodos Constructores
Más detalles75-62 Técnicas de Programación Concurrente II 2007
FIUBA 75-62 Técnicas de Programación Concurrente II 2007 Trabajo Práctico 1 Repaso General de Java Ing. Osvaldo Clúa Los siguientes proyectos están dirigidos a un repaso de Java básico. En los TP posteriores
Más detallesCurso de Java orientado a Android Parte 2
Curso de Java orientado a Android Parte 2 Introducción Java es un lenguaje de programación orientado a objetos (OOP). En este post cubriremos las características y principios básicos de la programación
Más detallesHERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.
HERENCIA (2ª parte) Lenguajes de Programación - Orientación a Objetos: Herencia 2ª parte 1 Object En Java todas las clases derivan de otra, aunque no se diga explícitamente. Object: Es el nombre de la
Más detallesPatrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015
Patrón Fábrica Abstracta Julio Ariel Hurtado Alegría Ingeniería de Software II 2015 Contenido Descripción General Problema Solución Participantes Ejemplo: Fábrica de Carros Ejemplo: RelojVisual 2 Descripción
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM. Programación en Java Diciembre 2010 Índice 1 Introducción 2 Comportamiento y estado 3 POO en Java 4 Relaciones 5 Herencia
Más detallesUNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS 1. INFORMACIÓN GENERAL
Más detallesTema 6. Patrones de diseño.
Ingeniería del Software II 2011 Tema 6. Patrones de diseño. Introducción. Durante el diseño Orientado a Objetos es frecuente encontrarse repetidamente con ciertos tipos de problemas, para analizar, compartir
Más detallesUso de Patrones de diseño
Uso de Patrones de diseño jsr@.upm.es - 1 - Relaciones La importancia de la relaciones en los diseños de orientación a objetos. Identificación de situaciones comunes. Necesidad de reciclar ideas no código
Más detallesCLASE 9 -HERENCIA Y POLIMORFISMO
CLASE 9 -HERENCIA Y POLIMORFISMO INTRODUCCIÓN Diferentes tipos de objetos con características y comportamiento comunes. lado1 lado2 lado3 color de línea color de relleno punto Triángulo Círculo radio color
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra l.guerra@upm.es Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia
Más detallesHerencia. public class Persona { private String nombre; private char sexo; public Persona() { nombre = new String(); sexo = ' '; }
Herencia Al definir una clase, se definen las características o variables y los métodos y conductas que pueden poseer todos los objetos que sean creados a partir de la clase. Sin embargo existen clases
Más detallesConceptos Básicos. Programación Orientada a Objetos 2
Programación Orientada a Objetos Conceptos Básicos de Objetos Ing. Julio Ernesto Carreño Vargas MsC. Conceptos Básicos Las aproximaciones ADOO y POO, proveen a los objetos como el principal medio para
Más detallesExamen Teórico. Convocatoria de Febrero de 2016
Examen Teórico Convocatoria de Febrero de 2016 Nombre: DNI: Grupo: 1. Responde a las siguientes cuestiones: a) Un programador Java empaqueta el código de un proyecto en el fichero videojuego.jar cuya clase
Más detallesPRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos
Objetivos El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos Introducción En esta práctica se abarcará el concepto de la encapsulación, así
Más detallesHerencia en Java. Agustín J. González Diseño y Programación Orientados a Objetos
Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos 1 Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente,
Más detalles