Também chamado de Padrão de Máquina de Estado Ao definir diferentes classes de estado para encapsular comportamentos relacionados a estados específicos e transferir a lógica de julgamento de estado para uma série de classes que representam estados diferentes, a lógica de julgamento complexa é simplificada.
O padrão de estado separa estado e comportamento, permitindo que um objeto mude seu comportamento quando seu estado interno muda.
Cada estado corresponde a uma subclasse, distribuindo assim a lógica de transição de estado para as subclasses de estado, reduzindo a interdependência.
O cliente geralmente não interage diretamente com o objeto de estado, mas interage com o objeto de estado por meio da classe de ambiente (Contexto).
Cena aplicável
O comportamento de um objeto depende do seu estado e ele deve mudar seu comportamento em tempo de execução com base no estado.
Uma operação contém uma enorme estrutura de múltiplas ramificações, e essas ramificações são determinadas pelo estado do objeto.
Exemplo padrão
No diagrama de estrutura do padrão de estado, geralmente contém as seguintes funções:
Contexto (classe de ambiente): Também chamada de classe de contexto, é um objeto com múltiplos estados. Mantenha uma instância da classe de estado abstrata State na classe de ambiente, que define o estado atual.
Estado (classe de estado abstrato): usado para definir uma interface para encapsular o comportamento relacionado a um estado específico da classe de ambiente. Os métodos correspondentes a vários estados são declarados na classe de estado abstrato e implementados em subclasses.
ConcreteState (classe de estado concreto): É uma subclasse da classe de estado abstrato. Cada subclasse implementa um comportamento relacionado a um estado da classe de ambiente.