Observador (observer) Visita (Visitor) Singleton

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Red Social: “Un millón de Amigos”.
FACHADA COMPOSITOR MEMENTO
Curso de Java Capitulo 7: Continuación Poo Profesor:
Lenguaje de programación Java
UML 1.4 Peter Emerson Pinchao Solis.
FACHADA.
INTRODUCCIÓN A JAVA.
Arquitectura CLARO-TECNOTREE
Programación Orientada a Objetos
Introducción a los sistemas operativos
Modelos de Datos Modelado y Diseño de Bases de Datos
Patrones de Diseño GEYFFER ALEXANDER ACOSTA CRISTHIAN DOUGLAS CASTRO
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
S.O. Multiusuario, red. Servicio: Cliente/Servidor, p2p
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Ingeniería del Software
Windows XP sp3.
Encapsulamiento y Abstracción
1.1.2 Sistemas de información para la gestión y para la ayuda en la toma de decisiones. Los SI contribuyen activamente a la consecución de los objetivos.
POO (Programación Orientada a Objetos)
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Abstracción de los datos y Orientación a Objeto Clase 13.
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.
Contexto: Aplicación gráfica.  Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación.
Patrones de Comportamiento: Patrón de Diseño Observer
Semana 5 Subprogramas..
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.
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.
Patrones Creacionales
ANDRES FELIPE BORRERO SALAZAR COD ALEXANDRA CARREÑO SALAS COD LUCIO ANIBAL CRIOLLO COD ALEJANDRO RUIZ IDROBO COD
Bases de Datos Orientadas a Objetos (BDOO)
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Abstracción de Datos y Orientación a Objetos.. Vista General. Por qué la abstracción de datos y la programación orientada a objetos. Módulos y módulos.
Patrones de Diseño: Command
Desarrollo de aplicaciones para ambientes distribuidos
Modelos de Bases de Datos
Servidores Conceptos Generales.
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
Facultad de Ingeniería
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Modelo de 3 capas.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
PATRON OBSERVADOR DEIRY ALI NIETO. El patrón observador lo podemos clasificar como un ejemplo claro de patrones de comportamiento, debido a que este posee.
Patrones de diseño equipo n.1
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
UML Casos de Uso (repaso) y Diagramas de Clase
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
M.C. Pedro Bello López 1 IMPLEMENTACIÓN. M.C. Pedro Bello López2.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
La Programación Orientado a Objetos
En el presente trabajo, se explica los diferentes elementos que nos ofrece Microsoft Access, para hacer mas fácil y rápido la realización de bases de.
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Modelado UML Diagrama de Clases
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.
Transcripción de la presentación:

Observador (observer) Visita (Visitor) Singleton PATRONES DE DISEÑO Observador (observer) Visita (Visitor) Singleton

SINGLETON

El patrón de diseño Singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.

El patrón Singleton se implementa creando en nuestra clase un método que crea una instancia del objeto sólo si todavía no existe alguna. Para asegurar que la clase no puede ser instanciada nuevamente se regula el alcance del constructor (con atributos como protegido o privado).

La instrumentación del patrón puede ser delicada en programas con múltiples hilos de ejecución. Si dos hilos de ejecución intentan crear la instancia al mismo tiempo y esta no existe todavía, sólo uno de ellos debe lograr crear el objeto. La solución clásica para este problema es utilizar exclusión mutua en el método de creación de la clase que implementa el patrón.

Las situaciones más habituales de aplicación de este patrón son aquellas en las que dicha clase controla el acceso a un recurso físico único (como puede ser el ratón o un archivo abierto en modo exclusivo) o cuando cierto tipo de datos debe estar disponible para todos los demás objetos de la aplicación.

El patrón Singleton provee una única instancia global gracias a que: La propia clase es responsable de crear la única instancia. Permite el acceso global a dicha instancia mediante un método de clase. Declara el constructor de clase como privado para que no sea instanciable directamente.

VISITOR

Propósito Representa una operación a realizar sobre los elementos de una estructura de objetos. Permite definir una nueva operación sin cambiar las clases de elementos sobre las que opera.

Aplicabilidad Usa el patrón Visitor cuando: Una estructura de objetos contiene muchas clases de objetos con interfaces distintas, y se quiere realizar sobre ellos operaciones que son distintas en cada clase concreta. Se quieren realizar muchas operaciones distintas sobre los objetos de una estructura, sin incluir dichas operaciones en las clases. Las clases que forman la estructura de objetos no cambian, pero las operaciones sobre ellas sí.

Estructura

Participantes Visitor (NodeVisitor): define una operación de visita para cada clase de elemento concreto en la estructura de objetos. ConcreteVisitor (TypeCheckingVisitor): Implementa la interfaz Visitor. Cada operación implementa un fragmento de la labor global del visitor concreto, pudiendo almacenar información local. Element (Node): define una operación accept con un visitor como argumento.

Participantes ConcreteElement (AssignmentNode): implementa la operación accept. ObjectStructure (Compiler): Gestiona la estructura de objetos, y puede enumerar sus elementos. Puede ser un compuesto (patrón composite) o una colección de objetos. Puede ofrecer una interfaz que permita al visitor visitar a sus elementos.

Colaboraciones

Consecuencias Facilita la definición de nuevas operaciones Agrupa operaciones relacionadas Añadir nuevas clases ConcreteElement es costoso Utilizar el patrón visitor si la jerarquía de clases es estable Permite atravesar jerarquías de objetos que no están relacionados por un padre común El visitor puede acumular el estado de una operación al visitar la estructura de objetos, en vez de pasarlo como argumento o usar variables globales. Rompe la encapsulación

OBSERVER

El patrón Observador también conocido como "spider" define una dependencia del tipo uno-a-muchos entre objetos, de manera que cuando uno de los objetos cambia su estado, el observador se encarga de notificar este cambio a todos los otros dependientes.

Participantes Subject: Conoce a sus observadores, que pueden ser de 0 a N, y ofrece la posibilidad de añadir y eliminar observadores. Observer :Define la interfaz que sirve para notificar a los observadores los cambios realizados en el Subject. ConcreteSubject: Almacena el estado que es objeto de interés de los observadores y envía un mensaje a sus observadores cuando su estado cambia. ConcreteObserver: Mantiene una referencia a un ConcreteSubject: Almacena el estado del Subject que le resulta de interés Implementa la interfaz de actualización de Observer para mantener la consistencia entre los dos estados.

Este patrón también se conoce como el patrón de publicación-inscripción o modelo-patrón. Estos nombres sugieren las ideas básicas del patrón, que son bien sencillas: el objeto de datos contiene atributos mediante los cuales cualquier objeto observador o vista se puede suscribir a él pasándole una referencia a sí mismo. El Sujeto mantiene así una lista de las referencias a sus observadores.

Los observadores a su vez están obligados a implementar unos métodos determinados mediante los cuales el Sujeto es capaz de notificar a sus observadores "suscritos" los cambios que sufre para que todos ellos tengan la oportunidad de actualizar el contenido representado. De manera que cuando se produce un cambio en el Sujeto, ejecutado, por ejemplo, por alguno de los observadores, el objeto de datos puede recorrer la lista de observadores avisando a cada uno.

Aplicación Cuando una abstracción tiene dos aspectos, uno dependiente del otro. La encapsulación de estos aspectos en objetos separados permite modificarlos y reutilizarlos de forma independiente. Cuando un cambio en un objeto exige cambios en otros, pero se desconoce a cuántos objetos afectan dichos cambios. Cuando un objeto tiene que ser capaz de notificar a otros objetos sin saber nada más de esos objetos.

Ejemplo

Bibliografías http://es.wikipedia.org/wiki/Observer_(patr%C3%B3n_de_dise%C3%B1o) peterpan.uc3m.es/docencia/p_s_ciclo/tdp/curso0203/apuntes/observer.pdf http://es.wikipedia.org/wiki/Singleton http://www.dei.inf.uc3m.es/espanyol/miembros/eguerra/docencia/0708/10%20Visitor.pdf