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

União Dao e Meal/Item

Olá! Parabéns pelo curso! Melhor do que a pós presencial que estou fazendo em programação mobile aqui em Porto Alegre. Entretanto, acho que faltou focar um pouco na parte visual do aplicativo, como por exemplo o padrão de design com constraints, e uso de componentes mais complexos.

Bom, vamos à dúvida: Entendi que as classes Dao tem a responsabilidade de persistência de dados, seja em arquivos, tabelas, webServices, etc.. Entretanto, gostaria de entender se há problemas em fazer a persistência do objeto em sua própria classe, afinal, a refeição que deveria saber aonde ela está e simplesmente persistir seus dados. Neste caso, ficaria, por exemplo, "meal.save()".

Obrigado.

2 respostas
solução!

Fala aí Belclei, blz?

Nesse caso, não há um certo ou errado. São decisões de arquitetura e design do seu projeto. E em qualquer uma das decisões teremos um Trade-off.

Eu costumo deixar qualquer parte de persistência dos dados nos DAOs. Pois não acho que a classe Meal deva saber como se conectar à um banco de dados, ou à um webservices ou como usar um serializador.

Dessa forma para as operações padrões (CRUD) podemos isolar em uma classe genérica e nos DAO's específicos podemos usar composição para reaproveitar o CRUD genérico.

Porém existem outro pattern chamado Active Record que é utilizado justamente para o caso que você citou onde minha classe de modelo tem as próprias responsabilidade de salvar e etc...

Acho interessante dar uma olhada na definição dos dois patterns DAO e Active Record e ver qual é o melhor para resolver o problema no seu projeto. Dado que os dois são referentes a resolução do mesmo problema.

Espero ter ajudado e bons estudos.

Ótima explicação Fernando. Muito obrigado.