Difference between revisions of "State Pattern (padrão de desenho)"

From Wiki**3

(Porta automática)
(Exercícios)
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{NAVPO}}
 +
{{TOCright}}
 
O padrão "state" permite que um objecto altere o seu comportamento quando o seu estado muda.
 
O padrão "state" permite que um objecto altere o seu comportamento quando o seu estado muda.
  
Line 6: Line 8:
 
[[Image:state-dpcd.png|500px]]
 
[[Image:state-dpcd.png|500px]]
  
==Exemplos==
+
== Exemplos ==
  
===Porta automática===
+
* [[State Pattern (padrão de desenho)/Porta Automática|Porta Automática]]
  
A porta automática pode estar en vários estados que determinam a sua resposta a estímulos. Os vários estados são "Closed" (porta fechada); "Closing" (porta a fechar); "StayOpen" (permanentemente aberta); "Open" (aberta); "Opening" (porta a abrir). Os estímulos são "click" (botão de abrir/fechar premido); "complete" (fim do ciclo de abertura/fecho); "timeout" (passagem de tempo num dado estado).
+
== Exercícios ==
  
[[Image:state-dp-state-diagram-door.png|500px]]
+
* [[State Pattern (padrão de desenho)/Exercício 01: Semáforo|Exercício 1: Semáforo]]
 +
* [[State Pattern (padrão de desenho)/Exercício 02: Máquina de Lavar|Exercício 2: Máquina de Lavar]]
  
A uma aplicação de teste que simula alguns estímulos aos quais a porta deve responder.
+
[[category:Ensino]]
 
+
[[category:PO]]
  public class StatePattern {
 
    public static void main(String[] args) {
 
      Door door = new Door();  // Closed
 
      door.click();
 
      door.complete();
 
      door.timeout();
 
      door.click();
 
      door.status();
 
    }
 
  }
 
 
 
===Máquina de bombons===
 
 
 
[[category:OOP]]
 

Latest revision as of 15:17, 30 November 2020

Programação com Objectos
Introduction
Creation and Destruction
Inheritance & Composition
Abstraction & Polymorphism
Code Organization
Java Topics
Inner Classes
Enumerations
Data Structures
Exceptions
Input/Output
RTTI
Other Topics
JUnit Tests
UML Topics
Design Patterns
"Simple" Factory
Composite & Visitor
Command
Strategy & State
Template Method
Observer
Abstract Factory
Decorator & Adapter
Façade (aka Facade)

O padrão "state" permite que um objecto altere o seu comportamento quando o seu estado muda.

Estrutura

O padrão state tem a seguinte estrutura de classes:

State-dpcd.png

Exemplos

Exercícios