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

From Wiki**3

Root (talk | contribs)
Root (talk | contribs)
 
(12 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]]
* [[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 13:17, 30 November 2020