Patron ESTADO Por : Luis Alberto Silva. Descripción General Permite que un objeto modifique su comportamiento cada vez que cambia su estado interno. Parecera.

Slides:



Advertisements
Presentaciones similares
Sistemas de Gestión de Bases de Datos (SGBD’s)
Advertisements

Herencia en C#.
Modelos de Datos Modelado y Diseño de Bases de Datos
Lección 2 Encapsulamiento
© Lic. Fernando Campos Camacho
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Simulación del patrón … (2)
Aplicación del paradigma orientado a objetos
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
El concepto de clase Con frecuencia un término puede definirse de diferentes maneras según el enfoque. Desde el punto de vista del análisis y el diseño.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Ejemplo Supongamos que queremos realizar un sistema que trabaje con figuras geométricas planas. El sistema debe poder mostrar información de una figura.
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.
Sintaxis.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Chain of Responsibility José Manuel Domínguez Arroyo Margarita Lozano Pérez Carlos Ignacio Mantecón Nebreda.
Luis Pereda Calvo1 Comportamiento de Objetos Estrategia (Strategy) *Política (Policy)
Dinamismo y Contenedores Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires (C++ Avanzado) Depto. de Computación Algoritmos y Estructuras.
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
Patrón Iterator Santiago García Sánchez Rebeca Marcos Salcedo Mª Cristina Zapatero Gironda.
Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.
Un paseo por las nuevas funciones. Patrones de Diseño Por si no ha quedado claro, los Patrones de Diseño, son el esqueleto de las soluciones a problemas.
Herencias Conceptos básicos i
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
Geykel Raul Moreno Ceballos Sherpa Chairman & Chief Software Architect Adapter (Wrapper) Structural Pattern (Patrón Estructural)
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Taller de Java Universidad de los Andes
Convenciones de nomenclatura y diseño
Programación Avanzada
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Clases y Objetos.
Uso de variables de tipo valor
Herencia Implementación en Java.
Anexo Chame-San Carlos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Orientada a Objetos
Fundamentos de la programación orientada a objetos
Exception Object Throwable Error Exception Runtime Exception.
Patrones de Diseño Agustín J. González ElO329.
Patrones de Diseño Agustín J. González ElO329.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Programación orientada a objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Sonia Rueda Herencia y Polimorfismo
Tema 3. Lenguaje unificado de modelado UML
Programación Orientada a Objetos I Unidad 4 Relaciones entre clases: herencia.
Programación Orientada Objetos
Herencia en C#.
La Programación Orientado a Objetos
FACTORY METHOD Creación a nivel de clases.
Fundamentos básicos del lenguaje C#. Parte 1 Introducción a C#
APLICACIONES II ° Patrones De Diseño ° Esteban Omar Mora Delgado
Conceptos de Objetos, Clases y Otros Modelo Conceptual
Patrón de diseño: Factory Method
Programación orientada a objetos en Visual Basic .NET
Class adapter.
CC 1002: Introducción a la Programación Clase 22
SIMULACIÓN CONCEPTOS BÁSICOS
Patrones de Diseño Agustín J. González ElO329.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Clases abstractas e interfaces
Transcripción de la presentación:

Patron ESTADO Por : Luis Alberto Silva

Descripción General Permite que un objeto modifique su comportamiento cada vez que cambia su estado interno. Parecera que cambia la clase del objeto. Nombre del Patron: State (Estado, Objects for States). Usa Polymorfismo para cambiar fácilmente el comportamiento de un objeto en tiempo de ejecucion.

Cuando se usa el pátron? Cuando queremos cambiar el comportamiento dependiendo del estado. Cuando queremos que un objeto cambie su comportamiento, según cambia su estado, se presenta el problema de la complejidad de código. Cuando queremos disminuir la complejidad algoritmica disminuyendo condicionales. if (myself = happy) then { eatIceCream(); …. } else if (myself = sad) then { goToPub(); …. } else if (myself = ecstatic) then { ….

Estructura General

Ejemplo I water StateOfWater WaterVapor LiquidWaterIce increaseTemp() decreaseTemp() state variable Client increaseTemp() decreaseTemp() increaseTemp() decreaseTemp() increaseTemp() decreaseTemp() increaseTemp() decreaseTemp()

Participantes de la implementación? Context: Define la Interfaz y mantiene una instancia con el estado actual. State: Define una interfaz para el comportamiento asociado a un determinado estado del Contexto. ConcreteState: Cada subclase implementa el comportamiento asociado con un estado del contexto. La clase “Context” mantiene una referencia a la clase concreta a fin de poderlas manipular.

Ejemplo II MyMoodMoodState doSomething() madangryhappy doSomething() state variable Client doSomething()

Consecuencias y beneficios del Patron Estado Localiza el comportamiento dependiente del estado y divide dicho comportamiento en diferentes estados.  Nuevos estados y transiciones se pueden agregar fácilmente mediante la definición de nuevas subclases.  Simplifica el mantenimiento. Hace explícitas las transiciones entre estados.  Objetos separados para estados separados hace explícita la transición en lugar de utilizar los valores de datos internos para definir las transiciones en un objeto combinado. Los objetos Estado pueden compartirse.  Contexto pueden compartir objetos Estado si no hay variables de instancia.

Ejemplo automata Finito class Automaton { State currentState = State.initial; State state = State.A; public void op_a(final Automaton context) { state.op_a(context); } public void op_b(final Automaton context) { state.op_b(context); } … } A B C a a a b b b

Estado Como un Enumeration Class Automaton { … enum State { A public void op_a(final Automaton context) { context.state = B; public void op_b(final Automaton context) { context.state = C; } }, B {…} C {…}; public abstract void op_a(final Automaton context); public abstract void op_b(final Automaton context); }