Já citamos algumas regras que definem os estados de uma poltrona de um cinema:
Quando uma sessão de cinema é criada, assentos também são criados para aquela sessão.
Quando os ingressos de uma sessão são colocados à venda, os assentos tornam-se disponíveis.
Quando um cliente seleciona um assento para a compra de um ingresso, enquanto a venda não é concluída o assento fica reservado.
Se o cliente não concluir a compra do ingresso, o assento volta a ficar disponível.
Quando o cliente conclui a compra do ingresso, o assento fica vendido.
Um cliente pode cancelar a compra de ingressos, após concluir a devolução do pagamento, o assento volta a ficar disponível.
Observe que sublinhamos os verbos e adjetivos que definem os possíveis estados das poltronas. De posse dessas informações, já podemos desenhar o diagrama de máquina de estados dos assentos do cinema:
Diagrama de máquina de estados que representa o cenário de estados de uma poltrona de uma sessão de cinema
O estado final do objeto não significa que o objeto é destruído, mas sim que ele é congelado em uma situação que não pode ter seu estado final mudado. Seus atributos permanecem visíveis: podem ser lidos, mas não alterados.
Muito embora seja comum destruir objetos no seu ponto de término, também é comum vermos sistemas onde os objetos são armazenados em bancos de dados quando chegam no estado final. Ainda, é comum que dados sejam mantidos em sistemas para auditoria ou para possibilitar desfazer operações de exclusão. Nessa ideia, uma situação de “excluído” é apenas um estado a mais do objeto (modelado como mais um retângulo de cantos arredondados) e não o ato de realmente apagar a informação.