Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Design Patterns State

Pessoal, estou estudando design patterns e me surgiu uma dúvida agora ao aprender o State. Geralmente no banco de dados temos uma relação mais ou menos assim:

Tenho uma entidade e ela tem um determinado status. Tabela orcamentos tem entre seus campos status_id, este que faz referencia a tabela de status, lá temos diversos status entre eles aguardando aprovação, aprovado e encerrado e os ids desses registros sejam consequentemente 1, 2, 3.

Dito isso, como eu transporia após uma busca no banco de dados, que o orçamento x que está no status 2 deve seguir as regras da minha classe de aprovado?

3 respostas
solução!

Opa Joel, você vai precisar de uma classe/função no seu código que dado um número de status retorne a classe específica para isso dentro da sua aplicação... É algo até normal dentre as aplicações... pode ser um if mesmo, sem problemas :).

Mas isso não vai infligir a ideia do state?

Por que eu terei um método lá com 10 condicionais se eu tiver 10 status, ou seja, cada vez que eu incluir um status no banco eu terei que incluir, mais um condicional e criar uma classe.

Não há outra forma mais "elegante" de fazer isso?

Opa Joel, não vai :). O resto do seu código que depende do state, continua abstraído... você criou apenas uma função responsável por mapear uma informação do banco de dados para um objeto do seu domínio. Esse é um trabalho comum... Você pode até procurar alguma forma em php de trabalhar com meta programação para fazer isso automático, mas eu realmente não vejo problema com esses ifs.