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

Dúvida sobre boas práticas

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?

2 respostas
solução!

Ola, Kevin !

1 duvida:

Voce deve modelar suas classes de uma forma que funcione tipo natural, se vc tem q instanciar e isso nao é legal, talvez vc tenha q mudar a modelagem.
Criar testes unitarios ajuda a deixar o modelo do jeitinho que voce precisa.
Colocar metodo [statico] EU nao gosto dessa abordagem para solucionar essa situação.

Poderia postar seus codigos para podemos discutir melhor ?

2 duvida:

Gosto da abordagem de CACHE, mas tenha cuidado na configuração tem q entender o tempo de vida do cache e se estiver num ambiente com cluster, varios servidores rodando entender a configuração deles.
Se tudo estiver OK, acho show essa solução

Outra coisa, sei que seu metodo de atualizar q esta dentro do DAO, é somente ilustrativo, MAS cuidado com muitas regras dentro de um metodo q teoricamente deveria fazer uma unica tarefa q é reservar(). Mas gosto desse pensamento de OOP, parabens !

Somente mais uma coisa, quando vc tiver mais que uma duvida, crie mais foruns, use e abuse, se vc coloca tudo em um unico forum, fica ruim para discutir, as vezes mistura-se os assuntos.

Espero ter ajudado!

Abraço e bons estudos!

Muito obrigado pelas dúvidas esclarecidas e a dica de fazer um método com apenas as regras necessárias já estou seguindo!

Mas não vou precisar mais pensar em qual abordagem vou utilizar, pois mudei o atributo da classe... Reaproveitei uma classe e agora não preciso escrever muito...

Que pena... gostaria de aplicar uma regra nova para variar um pouco rs.