Patrones Creacionales

Slides:



Advertisements
Presentaciones similares
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Advertisements

Curso de java básico (scjp)
Curso de java básico (scjp)
Observador (observer) Visita (Visitor) Singleton
Estructura de Datos Unidad 4. Recursividad Dra. María Lucía Barrón Estrada Enero-Junio 2007.
Herencia en C#.
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Patrones de Diseño GEYFFER ALEXANDER ACOSTA CRISTHIAN DOUGLAS CASTRO
El proceso de desarrollo de software
Lección 1 Introducción a la POO
Lección 2 Encapsulamiento
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Tema 1. Introducción a la programación (Lenguaje java).
Tratamiento de listas en Java
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD LATINA (UNILA)
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Encapsulamiento y Abstracción
Programación Orientada a Objetos en Java
Archivos Contenido: Archivos de Texto Archivos de Acceso Aleatorio
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Herencia e Interfaces.
Java. Objeto Es la instancia de una clase. Cada objeto se crea utilizando la palabra reservada new. Un objeto es conocido como una instancia. Ejemplo.
SISTEMAS DE LA INFORMACIÓN
Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
Modificadores.
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Unidad I Java y C++ : Similitudes y diferencias
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.
SCJP Sun Certified Programmer for Java 6
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Jerarquía de Clases: Herencia, Composición y Polimorfismo
El lenguaje de programación Java
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Material de apoyo Unidad 2 Fundamentos de programación
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Tema 11: Excepciones Antonio J. Sierra.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Lenguajes de Programación Tema 3
MEMENTO Patrón de Comportamiento Ana María Mateo Jorge P. Andrés
PATRON PROTOTYPE Cristina Merino Héctor Carbajo Alicia Arroyo.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
PATRÓN ADAPTER (Adaptador) Elena Moreno Ramírez Laura Sánchez Romero Aroa Solana Ruiz.
Patrón Iterator Santiago García Sánchez Rebeca Marcos Salcedo Mª Cristina Zapatero Gironda.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Programación Orientada a Objetos: CLASES Y OBJETOS
Clases “ Es una Abstracción de un elemento del mundo real ”
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Patrones Creacionales Singleton

Singleton Objetivo Asegurar una única instancia de una clase Proporcionar un punto de acceso global a ella

Singleton Motivación Importante tener una única instancia, cuando hay varias impresoras, pero sólo debe haber una cola de impresión (spooler) Sólo debería haber un sistema de ficheros, y un sistema de ventanas Una primera solución es tener una variable global que haga accesible al objeto, pero se tendría la posibilidad de crear múltiples instancias.

Singleton Solución Una buena solución es crear una clase que se encargue de mantener una sola instancia, y además, proveer un punto de acceso a los objeto a través de ella.

Singleton Aplicabilidad: Se necesita una sola instancia de una clase y debe ser accesible desde diferentes partes del sistema. Cuando la única instancia debe ser extensible y los clientes tengan que acceder a las subclases sin modificar su código.

Singleton Estructura Singleton -singlentonData -instance #Singleton() +getInstance() +getSinglentonData()

Singleton Participantes Colaboraciones Se define una operación de acceso para los clientes a la instancia única. Puede ser responsable de la creación de la propia instancia. Colaboraciones Los clientes acceden a la instancia única a través del método Instancia del Singleton.

Singleton Consecuencias Se tiene un acceso controlado a la instancia única Espacio de nombres reducido. Es una mejora de las variables globales, con lo que evita tener estas variables guardando casos únicos. Permite el refinamiento de operaciones y la representación Permite un número variable de instancias Tendencia a abusar en su utilización, por su sencillez, en casos en los que no hace falta

Singleton Implementación La clase se implementa de tal forma que sólo se pueda crear una instancia Se utiliza un método de clase (static) para ocultar la operación de creación para garantizar la creación de una instancia Este método tiene acceso a la variable que contiene la instancia y asegura que está inicializada antes de devolver el valor

Singleton public class Singleton{ // Atributos protected Singleton(){ // Inicialización de los atributos } /* Variable a la única instancia */ static private Singleton _instancia= null; static public Singleton getInstancia(){ if (_instancia == null) _instancia = new Singleton() return _instancia; /* Métodos adicionales */

Singleton El constructor se declara protegido asegurando que no se pueda crear una instancia directamente Una vez que se crea una instancia, no habrá posibilidad de crear ninguna más.

Singleton Ejemplo final class Singleton { private static Singleton s = new Singleton(47); //Instancia de la clase private int i; private Singleton(int x) { i = x; } //constructor privado public static Singleton getReference() { return s; } //Método que nos devuelve la instancia public int getValue() { return i; } public void setValue(int x) { i = x; } } //Varios métodos de la clase

Singleton Ejemplo public static void main(String[] args) { Singleton s = Singleton.getReference(); //Obtenemos un primer objeto String result = "" + s.getValue(); System.out.println(result); //Imprimimos su valor Singleton s2 = Singleton.getReference(); //Obtenemos un 2º objeto de la misma clase s2.setValue(9);//Modificamos el valor de la clase result = "" + s2.getValue(); System.out.println(result); //imprimimos el valor del objeto result = "" + s.getValue(); System.out.println(result); //imprimimos el valor del primer objeto de nuevo }

Singleton Ejemplo Salida tras la ejecución del método “main”: 47 9

Singleton Usos conocidos Clases para almacenar atributos de sesión Parámetros de la base de datos Dispositivos de visualización (gestores de ventana)

Singleton Patrones relacionados: Abstract Factory Builder Prototype

Bibliografía Design Patterns-Elements of reusable OO software (Gamma-Helm-Johnson-Vlissides) Internet http://www.1x4x9.info/files/patrones/html/online-chunked/ar01s03.html http://www.manual-java.com/codigos-java/utilizando-patron-singleton.html