Possuo a Classe Estoque (Um model) . Dentro dessa Classe, gostaria de isolar a responsabilidade de atualizar a quantidade de um produto, mas nem sempre recebo um Estoque, logo tenho que instanciá-la apenas para processar o produto. Seria uma boa prática colocar o método como static e utilizar este método utilitário mesmo Estoque sendo apenas um modelo?
Segunda dúvida - Estou isolando a responsabilidade de buscar os dados nos DAOs, e estou criando as regras de negócio nos Models. Exemplo abaixo \/
class EstoqueDAO{
reservaEstoque (int id){
Estoque estoque = busca(id); //busco o estoque
estoque.regraDeNegocio1(); //faço as alterações devidas
estoque.regraDeNegocio2();
etc...
return success;
}
}
Achei melhor fazer dessa forma, pois está mais voltado ao mundo OO, e a manutenção fica mais fácil. Ainda não implementei cache, dessa forma apesar de trazer uma "Query FULL", será apenas uma para fazer o cache, logo terei mais desempenho. Minha dúvida é... minha teoria está correta?