Considere a classe Fan que representa um ventilador que produz um fluxo de ar quente ou frio e que pode ser rápido ou lento em termos de velocidade.
public class Fan {
public Fan() { ... }
public void turnOn() { ... }
public void turnOff() { ... }
public void cool() { ... }
public void heat() { ... }
public void setFastSpeed() { ... }
public void setSlowSpeed() { ... }
}
Esta classe tem o seguinte funcionamento:
-
Quando é criado um ventilador este encontra-se desligado e portanto não aquece nem arrefece o ar.
-
Para aquecer ou arrefecer primeiro é necessário ligar o ventilador (responsabilidade do método turnOn), ficando o ventilador a aquecer em velocidade lenta.
-
Quando o ventilador está a aquecer (arrefecer) é possível passar a arrefecer (aquecer) invocando o método cool (heat).
- Pode-se sempre alterar a velocidade de funcionamento de um ventilador ligado: o método setFastSpeed passa de velocidade lenta para rápida enquanto que o método
setSlowSpeed faz o oposto.
- É sempre possível desligar (via método turnOff) um ventilador ligado.