1
resposta

Sobre Princípio da Responsabilidade Única

Essa observação no fim das contas pode ser encarada como preferência de design, mas aqui vai minha percepção:

A classe Negociacao deve ser responsável apenas por criar uma negociação. O único motivo para haver a necessidade de converter de string para números e data é o fato de que esses dados vêm da view. O controller, como controla a view, deve ser responsável por fazer essa tradução dela para o model. Isso garante que, havendo a adição de um outro controller que receba os dados de outra maneira, não haja a necessidade de criar um novo método "criaDe" no modelo.

1 resposta

Patrick, não sei se entendi bem, você quis dizer que se o método ficar no controller, outro controller não vai precisar reescrever? Por isso me parece incorreto. Se os controllers estão na mesma camada, eles não transitam dados de um pro outro, o que vai forçar a reescrever o mesmo método. Se pensarmos em MVC puramente, sim, o controller faria essa tradução, mas depende muito da regra de negócio e da arquitetura da aplicação, ao meu ver.

Se você tiver múltiplos pontos para a criação do modelo e você quer garantir as mesmas regras independente de onde os dados estão vindo, o lugar que vai garantir isso é no próprio modelo, pode não ser no mesmo arquivo, pode ser um helper que o modelo usa pra validar. Porém, tem outras formas: Interceptors é um exemplo, ele agiria antes do controller, converteria o dado e passaria para o controller da forma que ele deve simplesmente repassar para as demais camadas...

Faz sentido?