Ao aplicar o pattern state nós criamos as classes que representam os estados, porém para alterar o estado do orçamento tivemos que implementar o método public void setSituacao(SituacaoOrcamento situacao) {
this.situacao = situacao;
}
.
Esse método não cria um problema no fluxo dos estados já que abre a opção de usar o setSituação em vez de usar os métodos Aprovar ou Reprovar, fazendo assim com que os fluxos sejam quebrados ? Por exemplo, eu poderia fazer com que um orçamento já reprovado fosse aprovado chamando o método setSitucao(new Aprovado())
diretamente. Existe alguma forma que não é possível isso acontecer ?